2011-02-10 32 views
14

Tôi đang cố bắt đầu làm việc với OpenCL. Tôi có hai card đồ họa NVIDIA, tôi đã cài đặt "developer driver" cũng như SDK từ trang web của NVIDIA. Tôi biên soạn các bản demo nhưng khi tôi chạyLỗi -1001 trong clGetPlatformIDs Gọi!

./oclDeviceQuery

tôi thấy:

OpenCL SW Thông tin:

Lỗi -1001 trong clGetPlatformIDs Gọi !!!

Làm cách nào để khắc phục sự cố? Điều đó có nghĩa là thẻ nvidia của tôi không thể được phát hiện? Tôi đang chạy Ubuntu 10.10 và X server hoạt động đúng với trình điều khiển nvidia.

Tôi khá chắc chắn rằng sự cố không liên quan đến quyền đối với tệp vì nó không hoạt động với sudo.

Trả lời

5

Đây là kết quả của việc không cài đặt phần ICD của thời gian chạy openCL của Nvidia. Hồ sơ ICD sẽ hướng dẫn ứng dụng của bạn về các triển khai OpenCL khác nhau được cài đặt trên hệ thống khi nhiều triển khai từ các nhà cung cấp khác nhau có thể cùng tồn tại. Ứng dụng của bạn không tìm thấy thông tin ICD mà nó cung cấp cho Lỗi -1001.

+5

Bạn có thể cho tôi biết thêm về những gì chính xác bị thiếu không? Tôi có /etc/OpenCL/vendors/nvidia.icd tập tin đề cập đến thư viện libcuda.so. Bản thân thư viện tồn tại và nằm trên LD_LIBRARY_PATH. – tnorgd

1

Kể từ khi tôi chỉ cần bỏ ra một vài giờ về vấn đề này, tôi nghĩ tôi sẽ chia sẻ: Tôi đã nhận lỗi vì tôi đã được kết nối vào máy tính mỗi máy tính từ xa (mstsc). Trên máy, mọi thứ đều hoạt động tốt.

Tôi đã được thông báo rằng nó sẽ hoạt động với TeamViewer bằng cách này.

2

Cùng một vấn đề đối với tôi trên hệ thống Linux. Giải pháp là để thêm người dùng vào nhóm video:

# sudo usermod -aG video your-user-name 
+3

Điều đó không giúp được gì! Ít nhất không phải cho tôi, và tôi có cùng một vấn đề. – einpoklum

0

tôi đã giải quyết nó trong Ubuntu 13.10 vô lể cho intel OpenCL bởi liên kết tạo:

sudo ln -s /opt/intel/opencl-1.2-3.2.1.16712/etc/intel64.icd /etc/OpenCL/vendors/nvidia.icd 
7

Trong trường hợp của tôi, tôi đã giải quyết nó bằng cách cài đặt nvidia-modprobe gói sẵn trong ubuntu (utopic/multiverse). Và chính trình điều khiển (v346) đã được cài đặt từ
https://launchpad.net/~mamarley/+archive/ubuntu/nvidia

Cụ thể, tôi đã cài đặt nvidia-opencl-icd-346, nvidia-libopencl1-346, nvidia-346-uvm, nvidia-346 và libcuda1-346. Bạn không chắc chắn nếu tất cả chúng đều cần thiết cho OpenCL.

+0

Trong trường hợp của tôi nvidia-modprobe là vấn đề. Bây giờ nó hoạt động ngay cả với người lái xe cũ (331). Cảm ơn! – avtomaton

+1

Làm cho nó hoạt động với tôi trên Ubuntu 15.10, thiết lập chính xác được giải thích tại: http://stackoverflow.com/a/33483311/895245 –

0

Tôi chỉ gặp sự cố này trên ubuntu 14.04 và tôi không thể tìm thấy câu trả lời làm việc ở bất kỳ nơi nào trực tuyến bao gồm chuỗi này (mặc dù đây là lần đầu tiên hiển thị trên google). Điều gì đã làm việc cho tôi là loại bỏ tất cả phần mềm nvidia trước đó và sau đó cài đặt lại nó bằng cách sử dụng tệp .run được cung cấp trên trang web nvidia. Cài đặt các thành phần thông qua apt-get có vẻ thất bại vì một số lý do.

1) Tải về CUDA tập tin .run: https://developer.nvidia.com/cuda-downloads

2) Tẩy tất cả các gói nvidia trước

sudo apt-get purge nvidia-* 

3) Cài đặt tất cả các thành phần tập tin chạy (bạn có thể sẽ phải dừng lại X hoặc khởi động lại trong phục hồi chế độ để chạy)

sudo sh cuda_X.X.XX_linux.run 
-1

này có thể là do truy vấn clGetPlatformIDs bởi nhiều luồng cùng một lúc

0.123.
2

Chạy chương trình của bạn dưới dạng gốc. Trong trường hợp thành công: bạn gặp sự cố với phần mở rộng cl_khr_icd- để tải trình điều khiển của nhà cung cấp. Nếu bạn không chạy X11, bạn phải tạo tệp thiết bị theo cách thủ công hoặc theo (boot-) tập lệnh: ERROR: clGetPlatformIDs -1001 when running OpenCL code (Linux)

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