2013-01-15 47 views
8

Tôi đã thêm một tham chiếu đến thư viện CUDAfy.NET qua NuGet.CUDAfy.NET cho Win32Exception: Hệ thống không thể tìm thấy tệp được chỉ định

<package id="CUDAfy.NET" version="1.12.4695.21111" targetFramework="net45" /> 

Khi tôi chạy chương trình của tôi, tôi nhấn một Win32Exception:

The system cannot find the file specified

Điều này xảy ra trên dòng thực tế đầu tiên của chương trình:

CudafyModule km = CudafyTranslator.Cudafy(); 

Không có dấu hiệu từ đối tượng ngoại lệ như những gì họ đang cố gắng tải.

Làm cách nào để vượt qua vấn đề này?

EDIT

tôi thấy cùng một ngoại lệ khi chạy các ví dụ kèm từ việc tải xuống Codeplex trong VS2010 sử dụng .NET 4.0.

Các dấu vết strack là:

at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 
at Cudafy.CudafyModule.Compile(eGPUCompiler mode, Boolean deleteGeneratedCode) 
at Cudafy.Translator.CudafyTranslator.Cudafy(ePlatform platform, eArchitecture arch, Version cudaVersion, Boolean compile, Type[] types) 
at Cudafy.Translator.CudafyTranslator.Cudafy(ePlatform platform, eArchitecture arch, Type[] types) 
at Cudafy.Translator.CudafyTranslator.Cudafy() 

Trả lời

11

Thiết VS để phá vỡ trên trường hợp ngoại lệ ném cho thấy đối tượng ProcessStartInfo ở phía trên cùng của ngăn xếp trong người dân địa phương cửa sổ của chương trình gỡ rối.

Các thuộc tính có liên quan bao gồm:

FileName = nvcc 
Arguments = -m64 -arch=sm_12 "c:\<path>\CUDAFYSOURCETEMP.cu" -o "c:\<path>\CUDAFYSOURCETEMP.ptx" --ptx 

Một số thông tin từ this article giải thích rằng CUDA Toolkit phải được cài đặt. Đủ công bằng.

Ensure that the C++ compiler (cl.exe) is on the search path. This set-up of NVCC is actually the toughest stage of the whole process, so please persevere. Read any errors you get carefully - most likely they are related to not finding cl.exe or not having either 32-bit or 64-bit CUDA Toolkit.

Bài viết đó thảo luận về phiên bản 4 của bộ công cụ, nhưng phiên bản 5 hiện có sẵn và được hỗ trợ kể từ CUDAfy v1.1.

Tải về từ https://developer.nvidia.com/cuda-downloads

Lưu ý rằng phiên bản 64-bit của CUDA Toolkit 5.0 là một 942 MB download. Nếu bạn cài đặt mọi thứ, bạn sẽ cần thêm 2815 MB. Bộ công cụ một mình yêu cầu 928 MB.

EDIT Sau khi cài đặt CUDA Toolkit 5.0, chương trình thất bại với một CudafyCompileException tại dòng cùng một nguồn:

Compilation error: nvcc : fatal error : Cannot find compiler 'cl.exe' in PATH

Tìm kiếm ổ đĩa hệ thống của tôi:

C:\>dir /s cl.exe 

Điều này cho thấy nhiều phiên bản khác nhau của trình biên dịch/liên kết, cả hai từ VS 10.0 và 11.0. Rõ ràng chỉ cl.exe phiên bản 9 và 10 được hỗ trợ, vì vậy tôi chọn cho phiên bản VS10.0 amd64, tôi bao gồm những điều sau đây trong biến PATH môi trường của tôi:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64

con đường của bạn có thể khác nhau, tùy thuộc vào CPU của bạn. Tôi khuyên bạn nên chạy tìm kiếm để xem các tùy chọn của bạn.

Lưu ý rằng bạn sẽ phải khởi động lại VS sau khi thay đổi biến môi trường PATH nếu bạn đã mở nó.

Sau khi thực hiện các bước này, chương trình cơ bản của tôi đã chạy thành công.

+0

Chào buổi tối, ive gặp vấn đề tương tự nhưng không chắc chắn 100% ý bạn là gì sau đây "Tôi đã bao gồm các biến sau trong biến môi trường PATH của mình:" bạn có thể mở rộng không? Nơi abouts là biến môi trường Path, nó là một thiết lập trong VS? +1 của btw :). –

+1

@HansRudel, biến môi trường PATH là một cài đặt toàn hệ thống cho máy tính của bạn biết nơi tìm các chương trình được yêu cầu mà không có đường dẫn rõ ràng. Có lẽ [câu hỏi này] (http://superuser.com/q/284342/31787) sẽ cung cấp cho bạn thêm thông tin. –

+0

Cảm ơn rất nhiều về liên kết, giờ đây đã có ý nghĩa hơn một chút. Tôi đã đăng một câu hỏi về SO, trước khi tôi tìm thấy câu hỏi này, và một người nào đó lấp đầy khoảng trống để tôi nhận nó làm việc sáng nay. –

1

Điều này cũng có thể xảy ra nếu bạn đã cài đặt CUDA Toolkit phiên bản 7.5, nhưng nhận ra rằng phiên bản mới nhất của CUDAfy hỗ trợ CUDA 7.0. Khi gỡ cài đặt CUDA 7.5 khỏi bảng điều khiển, một số tệp/thư mục có thể vẫn còn. Bạn nên xóa chúng bằng tay. Bạn có thể sử dụng CUDAfyViewer để xem phiên bản nào của Bộ công cụ CUDA đang được truy cập.

Các vấn đề liên quan