จะทำให้ OpenCL ทำงานบนไดร์เวอร์ 14.10 + Nvidia 331.89 ได้อย่างไร?


11

ไดรเวอร์ที่เป็นกรรมสิทธิ์ 331.89 ไม่ให้ OpenCL ฉัน (ลองทั้งทดสอบและอัปเดต) ในขณะที่ฉันมีรุ่น 304.123 ใช้งานได้ - ยกเว้นฉันต้องการไดรเวอร์ปัจจุบันและตอนนี้ไม่สามารถปรับลดรุ่นได้

อย่างไรก็ตาม - ฉันสามารถปรับลดรุ่นได้ตามวิธีแก้ปัญหา แต่ฉันต้องการ 331.89 ทำงาน

ฉันใช้ "darktable -d opencl" เป็น alos ทดสอบเพิ่มลิงก์สัญลักษณ์ไปยัง darktable แต่นั่นไม่ได้ช่วย 331.89

คำตอบ:


11

ฉันก็สับสนกับปัญหาที่น่างงนี้จนฉันพบชุดของโพสต์ฟอรั่มเกี่ยวกับ Virtual Lighttableที่ผู้เข้าร่วมทำการแก้จุดบกพร่องบางอย่าง ปรากฎว่าไดรเวอร์ NVIDIA ต้องการกฎ modprobe แบบกำหนดเองที่ไม่ได้ติดตั้งไว้ตามค่าเริ่มต้นด้วยnvidia-331ไดรเวอร์ opencl กฎเหล่านี้มีอยู่ในnvidia-modprobeแพ็คเกจ

นี่คือรายการของแพ็คเกจทั้งหมดที่คุณต้องมีเพื่อให้ OpenCL ทำงานบน Ubuntu 14.10 พร้อมไดรเวอร์ NVIDIA:

sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe

แก้ไข: ในกรณีที่ทุกคนพบปัญหาที่คล้ายกันใน Ubuntu 15.04 และไดรเวอร์ NVIDIA 346.59 คำสั่งเพื่อแก้ไขปัญหาเกือบจะเหมือนกัน:

sudo apt-get install nvidia-346 nvidia-346-uvm nvidia-opencl-dev nvidia-modprobe

บน Linux มิ้นต์ฉันพบข้อผิดพลาดนี้เมื่อรันdeviceQueryโปรแกรมทดสอบ CUDA:optirun --bridge primus ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 38 -> no CUDA-capable device is detected Result = FAIL
3728501

2

Ubuntu 15.10

sudo apt-get install nvidia-352 nvidia-352-dev nvidia-prime nvidia-modprobe nvidia-opencl-dev
sudo ln -s /usr/include/nvidia-352/GL /usr/local/include
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so

จากนั้นรวบรวมด้วย:

gcc -o main main.c -lOpenCL

และใช้ส่วนหัวเป็น:

#include <CL/cl.h>

หมายเหตุ:

ฉันแนะนำให้อัพเกรดเป็น 15.10 เพื่อให้ใช้งานได้จริง: ฉันไม่เคยจัดการมาก่อน

ทดสอบเมื่อ:

  • Lenovo ThinkPad T430 พร้อม NVIDIA NVS 5400M
  • Lenovo ThinkPad W540 พร้อม NVIDIA Quadro K1100M

0

สำหรับ Ubuntu 14.04 nvidia-modprobe ทำให้ระบบของฉันยุ่ง แต่ฉันรู้ว่าnvidia-331-uvmไม่ได้เปิดใช้งานตั้งแต่เริ่มต้น (พระเจ้ารู้ว่าทำไม) ดังนั้นขอเปิดใช้งานมัน:

$ sudo modprobe nvidia-331-uvm
$ sudo mknod -m 666 /dev/nvidia-uvm c 249 0

แล้ว:

$ sudo clinfo

จากนั้นคุณจะสามารถใช้ opencl ได้แม้ในฐานะผู้ใช้ที่ไม่ใช่รูท ทำไมจึงเป็นเช่นนี้จะมีการอธิบายในเสมือนรายการจดหมาย Lighttable

ดังนั้นในที่สุดฉันก็เพิ่มบรรทัดถัดไปใน/etc/rc.localไฟล์ของฉัน:

# begin opencl config
modprobe nvidia-331-uvm
mknod -m 666 /dev/nvidia-uvm c 249 0
clinfo
# end opencl config 

จากนั้นทุกอย่างทำงานได้อย่างราบรื่น;)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.