2014-04-14 13 views
9

Gần đây tôi đã cài đặt bộ công cụ cuda 5.5 với trình điều khiển 331.67 (Tôi có GeForce GTX 680). Đối với một số lý do, tôi không thể chạy bất kỳ Scrips kiểm tra:không phát hiện thấy thiết bị có khả năng CUDA (sử dụng máy chủ ubuntu 12.04.4)

$./NVIDIA_CUDA-5.5_Samples/1_Utilities/deviceQuery/deviceQuery 
./NVIDIA_CUDA-5.5_Samples/1_Utilities/deviceQuery/deviceQuery Starting... 

CUDA Device Query (Runtime API) version (CUDART static linking) 

cudaGetDeviceCount returned 38 
-> no CUDA-capable device is detected 
Result = FAIL 

Tôi làm theo các bước trên "hướng dẫn bắt đầu" ở đây

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/

và tạo ra một kịch bản để tạo ra các thiết bị vật các tệp khi khởi động (vì tôi đang chạy phiên bản máy chủ của Ubuntu các tệp đồ họa như vậy không được tạo theo mặc định):

$ls -l /dev/nvidia* 
crw-rw-rw- 1 root root 195, 0 Apr 11 17:29 /dev/nvidia0 
crw-rw-rw- 1 root root 195, 255 Apr 11 17:29 /dev/nvidiactl 

Đầu ra cho thực thi g lệnh nvidia-smi -a là (cho cả người dùng và rễ dùng bình thường):

Failed to initialize NVML: Unknown Error 

Dưới đây là một số thông tin về các mô-đun nvidia

$ lsmod | grep nvidia 
nvidia    11335080 0 
$ modinfo nvidia 
filename:  /lib/modules/3.11.0-17-generic/updates/dkms/nvidia.ko 
alias:   char-major-195-* 
version:  331.67 
supported:  external 
license:  NVIDIA 
... 
... 

Bất kỳ lời đề nghị? Cảm ơn.

EDIT # 1 Tôi đã cố gắng hạ cho tài xế 319,76:

$ modinfo nvidia 
filename:  /lib/modules/3.11.0-17-generic/updates/dkms/nvidia.ko 
alias:   char-major-195-* 
version:  319.76 
supported:  external 
... 

Bây giờ khi tôi chạy nvidia-smi -a tôi nhận được như sau:

NVIDIA: API mismatch: the NVIDIA kernel module has version 304.116, 
but this NVIDIA driver component has version 319.76. Please make 
sure that the kernel module and all NVIDIA driver components 
have the same version. 
Failed to initialize NVML: Unknown Error 

Tôi đã cài đặt nvidia-current-updatesnvidia-settings-updates gói từ repos trước khi cài đặt các tập tin trình điều khiển và tôi đoán đó là nơi mà các xung đột phát sinh. Tôi đã không tìm thấy một giải pháp, nhưng đây là một bước gần hơn tôi nghĩ. Dưới đây là kết quả của modprobe -l | grep nvidia

kernel/drivers/video/nvidia/nvidiafb.ko 
kernel/drivers/net/ethernet/nvidia/forcedeth.ko 
updates/dkms/nvidia.ko 
updates/dkms/nvidia_304_updates.k 
+0

kết quả của việc chạy 'nvidia-smi -a' là người dùng thông thường, và sau đó là người dùng root? Vui lòng dán kết quả vào câu hỏi của bạn, không phải trong các nhận xét. –

+0

Đầu ra của «nvidia-smi -a' là gì? – cklin

+0

Nếu, 'nvidia-smi -a' hiển thị lỗi NVML khi chạy với tư cách người dùng root, trình điều khiển không được tải đúng cách hoặc không thể tìm thấy GPU. Bạn có thể cần khởi động lại hệ thống hoặc tải lại trình điều khiển. Bạn cũng nên kiểm tra đầu ra của 'lspci | grep -i nvidia' hiển thị GPU (GTX 680) của bạn như hiện tại. –

Trả lời

13

Vì vậy, nó quay ra lỗi chính tôi đã gặp phải là do thực tế rằng có sự không phù hợp phiên bản giữa các mô-đun nvidia kernel và các thành phần điều khiển. Dưới đây là các bước tôi đã thực hiện để giúp tôi tìm ra giải pháp.

1) hạ cấp trình điều khiển cho phép tôi xem nvidia-smi -a khiếu nại về sự không phù hợp của thành phần trình điều khiển. Tôi đã không chắc chắn đây sẽ là một vấn đề ban đầu. Tôi chỉ đơn giản là làm theo hướng dẫn cài đặt bộ công cụ CUDA, điều này không đề cập đến vấn đề này.

2) Sau khi cài đặt các mô-đun hạt nhân từ repos, tôi chỉ chọn thành phần trình điều khiển tương ứng với phiên bản chính xác. Nếu bạn không biết phiên bản của module kernel đã cài đặt, bạn có thể sử dụng modprobe và modinfo. Ví dụ: trên hệ thống của tôi

$ modprobe -l | grep nvidia 
kernel/drivers/video/nvidia/nvidiafb.ko 
kernel/drivers/net/ethernet/nvidia/forcedeth.ko 
updates/dkms/nvidia.ko 
updates/dkms/nvidia_304_updates.ko 

Mô-đun nvidia_304_updates được cài đặt từ repos (gói nvidia cập nhật-hiện tại).phiên bản chính xác của nó được tìm thấy với modinfo

$ modinfo /lib/modules/3.11.0-17-generic/updates/dkms/nvidia_304_updates.ko 
filename:  /lib/modules/3.11.0-17-generic/updates/dkms/nvidia_304_updates.ko 
alias:   char-major-195-* 
version:  304.116 
supported:  external 

Sau khi tải về và cài đặt các thành phần điều khiển tương ứng từ kho lưu trữ trên trang web nvidia,

http://www.nvidia.com/Download/Find.aspx?lang=en-us

, tôi đã có thể chạy lệnh

$ nvidia-smi -a 

==============NVSMI LOG============== 

Timestamp      : Mon Apr 14 15:17:44 2014 
Driver Version     : 304.116 

Attached GPUs     : 1 
GPU 0000:04:00.0 
    Product Name    : GeForce GTX 680 
... 
... 

Và tập lệnh gốc tôi đã cố thực hiện

$ ./deviceQuery 
./deviceQuery Starting... 

CUDA Device Query (Runtime API) version (CUDART static linking) 

Detected 1 CUDA Capable device(s) 

Device 0: "GeForce GTX 680" 
    CUDA Driver Version/Runtime Version   5.0/5.0 
    CUDA Capability Major/Minor version number: 3.0 
    Total amount of global memory:     2047 MBytes (2146762752 bytes) 
    (8) Multiprocessors x (192) CUDA Cores/MP: 1536 CUDA Cores 
    ... 
    ... 
+10

Chỉ cần nếu có ai khác đi qua này: Một khởi động lại đơn giản cố định trong trường hợp của tôi XD – panmari

+1

@panmari: khởi động lại như charm thanks :) Đây phải là câu trả lời không phải là một bình luận tôi nghĩ. – Kocik

+1

Khởi động lại không hiệu quả với tôi; Tuy nhiên, "sudo nvidia-smi" đã hoạt động. – Sevenless

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