โดยทั่วไปแล้วฉันคิดว่าดีที่สุดที่จะยึดติดกับ Ubuntu LTS ทุกรุ่น ... 18.04 หรือ 20.04 ฯลฯ ... เนื่องจากสิ่งเหล่านี้มักจะได้รับการสนับสนุนที่ดีกว่าจากสิ่งต่าง ๆ เช่นไดรเวอร์ nvidia เป็นต้น
ดังนั้นฉันจึงใช้ Ubuntu 20.04 และฉันติดตั้ง cuda โดยทำสิ่งนี้
ลบ symlink ทั้งหมดที่คุณสร้างขึ้นเพื่อแทนที่เวอร์ชันคอมไพเลอร์
ซอฟต์แวร์และการอัปเดต -> ไดรเวอร์เพิ่มเติม -> เลือก Nouveau
cd /var/crash # ลบไฟล์ใด ๆ ที่นี่
ซีดี /etc/apt
grep -r cuda * # ให้ไฟล์ตัวอย่าง /etc/apt/sources.list.d/cuda-ubuntu2004-11-6-local.list
ตอนนี้ลบไฟล์ใด ๆ ที่ส่งคืนโดยคำสั่งด้านบนหรือเพียงแค่แสดงความคิดเห็นทุกบรรทัดในไฟล์ดังกล่าว
รีบูต
ตอนนี้ติดตั้ง cuda (มันจะติดตั้งไดรเวอร์ nvidia ที่ตรงกันโดยอัตโนมัติ แต่คุณต้องเริ่มจากการใช้ Nouveau)
https://developer.nvidia.com/cuda-downloads
Linux -> x86_64 -> Ubuntu -> 20.04 -> deb (ท้องถิ่น)
ด้านบนจะนำคุณไปสู่การเชื่อมโยง
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local
ด้านบนแสดงให้คุณเห็นด้านล่างซึ่งคุณออกเอง
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb
sudo apt-key เพิ่ม /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
sudo apt-get อัปเดต
sudo apt-get -y ติดตั้ง cuda
รีบูต
nvidia-smi
จ. 17 ม.ค. 13:20:46 น. 2565
+--------------------------------------------- ----------------------------+
| เวอร์ชันไดรเวอร์ NVIDIA-SMI 510.39.01: 510.39.01 เวอร์ชัน CUDA: 11.6 |
|---------------------------------------++---------------- ----------------------------+
| ชื่อ GPU ความคงทน-M| Bus-Id Disp.A | ผันผวน Uncorr ECC |
| Fan Temp Perf Pwr:การใช้งาน/ความจุ| การใช้งานหน่วยความจำ | GPU-Util Compute M. |
| | | MIG M. |
|==============================+================== =====+======================|
| 0 NVIDIA GeForce ... เปิด | 00000000:02:00.0 เปิด | ไม่มี |
| 0% 56C P0 29W / 190W | 1362MiB / 6144MiB | ค่าเริ่มต้น 25% |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+
+--------------------------------------------- ----------------------------+
| กระบวนการ: |
| GPU GI CI ประเภท PID ชื่อกระบวนการ หน่วยความจำ GPU |
| รหัส ID การใช้ |
|================================================= ============================|
| 0 ไม่มี ไม่มี ไม่มี 1280 G /usr/lib/xorg/Xorg 101MiB |
| 0 ไม่มี ไม่มี 1965 G /usr/lib/xorg/Xorg 656MiB |
| 0 ไม่มี ไม่มี ไม่มี 2110 G /usr/bin/gnome-shell 82MiB |
| 0 ไม่มี ไม่มี 2493 G ...AAAAAAAAA= --shared-files 19MiB |
| 0 ไม่มี ไม่มี 4865 G ...167530988844266480,131072 19MiB |
| 0 ไม่มี ไม่มี 6981 G ...axaca/src/firefox/firefox 230MiB |
| 0 ไม่มี ไม่มี 8585 G ...AAAAAAAAA= --shared-files 39MiB |
| 0 ไม่มี ไม่มี 10141 G ...AAAAAAAAAA= --shared-files 68MiB |
| 0 ไม่มี ไม่มี 10638 G ...AAAAAAAAA= --shared-files 114MiB |
+--------------------------------------------- ----------------------------+
nvcc -- รุ่น
nvcc: ไดรเวอร์คอมไพเลอร์ NVIDIA (R) Cuda
ลิขสิทธิ์ (c) 2005-2021 NVIDIA Corporation
สร้างเมื่อ Fri_Dec_17_18:16:03_PST_2021
เครื่องมือรวบรวม Cuda, รีลีส 11.6, V11.6.55
สร้าง cuda_11.6.r11.6/compiler.30794723_0
cat proc/driver/nvidia/เวอร์ชั่น
เวอร์ชัน NVRM: NVIDIA UNIX x86_64 Kernel Module 510.39.01 วันศุกร์ที่ 31 ธันวาคม 11:03:22 UTC 2021
เวอร์ชัน GCC: gcc เวอร์ชัน 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04)
เมื่อคุณทำข้างต้นแล้ว repo git ของคุณจะคอมไพล์ตกลงตามด้านล่าง
gcc -- รุ่น
gcc (อูบุนตู 9.4.0-1ubuntu1~20.04) 9.4.0
ลิขสิทธิ์ (C) 2019 Free Software Foundation, Inc.
นี่เป็นซอฟต์แวร์ฟรี ดูแหล่งที่มาสำหรับเงื่อนไขการคัดลอก ไม่มี
การรับประกัน; ไม่แม้แต่สำหรับการค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ
g ++ -- รุ่น
g++ (อูบุนตู 9.4.0-1ubuntu1~20.04) 9.4.0
ลิขสิทธิ์ (C) 2019 Free Software Foundation, Inc.
นี่เป็นซอฟต์แวร์ฟรี ดูแหล่งที่มาสำหรับเงื่อนไขการคัดลอก ไม่มี
การรับประกัน; ไม่แม้แต่สำหรับการค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ
oaxaca@wasayama ~/src/doitt/github.com/OpenKinect/libfreenect2/build $ cmake ..
-- การระบุคอมไพเลอร์ C คือ GNU 9.4.0
-- การระบุคอมไพเลอร์ CXX คือ GNU 9.4.0
-- ตรวจสอบการทำงานของคอมไพเลอร์ C: /usr/bin/cc
-- ตรวจสอบการทำงานของคอมไพเลอร์ C: /usr/bin/cc -- ใช้งานได้
- ตรวจจับข้อมูล ABI ของคอมไพเลอร์ C
-- การตรวจจับข้อมูลคอมไพเลอร์ C ABI - เสร็จสิ้น
-- การตรวจจับคุณสมบัติการคอมไพล์ C
-- การตรวจจับคุณสมบัติคอมไพล์ C - เสร็จสิ้น
-- ตรวจสอบการทำงานของคอมไพเลอร์ CXX: /usr/bin/c++
-- ตรวจสอบการทำงานของคอมไพเลอร์ CXX: /usr/bin/c++ -- ใช้งานได้
-- การตรวจจับข้อมูล ABI ของคอมไพเลอร์ CXX
-- การตรวจจับข้อมูล ABI ของคอมไพเลอร์ CXX - เสร็จสิ้น
-- การตรวจจับคุณสมบัติการคอมไพล์ CXX
-- การตรวจจับคุณสมบัติการคอมไพล์ CXX - เสร็จสิ้น
- ใช้เธรดเล็ก ๆ เป็นไลบรารีของเธรด
-- พบ PkgConfig: /usr/bin/pkg-config (พบเวอร์ชัน "0.29.1")
-- กำลังตรวจสอบโมดูล 'libusb-1.0>=1.0.20'
-- พบ libusb-1.0 เวอร์ชัน 1.0.23
-- การตรวจสอบโมดูล 'libva;libva-drm'
-- พบ libva เวอร์ชัน 1.7.0
-- พบ libva-drm เวอร์ชัน 1.7.0
-- พบ JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (พบเวอร์ชัน "80")
-- ไม่พบ TegraJPEG (หายไป: TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_WORKS)
-- ดำเนินการทดสอบ TURBOJPEG_WORKS
-- กำลังทำการทดสอบ TURBOJPEG_WORKS - สำเร็จ
-- พบ TurboJPEG: /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0
-- กำลังตรวจสอบโมดูล 'glfw3'
-- พบ glfw3 เวอร์ชัน 3.3.2
คำเตือน CMake (dev) ที่ /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (ข้อความ):
ไม่ได้ตั้งค่านโยบาย CMP0072: FindOpenGL ต้องการ GLVND เป็นค่าเริ่มต้นเมื่อ
มีอยู่. เรียกใช้ "cmake --help-policy CMP0072" เพื่อดูรายละเอียดนโยบาย ใช้
คำสั่ง cmake_policy เพื่อตั้งค่านโยบายและระงับคำเตือนนี้
FindOpenGL พบทั้งไลบรารี GL ดั้งเดิม:
OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
และไลบรารี GLVND สำหรับ OpenGL และ GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
OpenGL_GL_PREFERENCE ไม่ได้ตั้งค่าเป็น "GLVND" หรือ "LEGACY" ดังนั้นสำหรับ
ความเข้ากันได้กับ CMake 3.10 และต่ำกว่าไลบรารี GL เดิมจะถูกใช้
Call Stack (การโทรครั้งล่าสุดก่อน):
CMakeLists.txt:269 (FIND_PACKAGE)
คำเตือนนี้มีไว้สำหรับผู้พัฒนาโครงการ ใช้ -Wno-dev เพื่อระงับ
-- พบ OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- กำลังมองหา CL_VERSION_2_0
-- ค้นหา CL_VERSION_2_0 - พบแล้ว
-- พบ OpenCL: /usr/lib/x86_64-linux-gnu/libOpenCL.so (พบเวอร์ชัน "2.0")
-- ทำการทดสอบ OpenCL_C_WORKS
-- ทำการทดสอบ OpenCL_C_WORKS - สำเร็จ
-- ทำการทดสอบ OpenCL_CXX_WORKS
-- ทำการทดสอบ OpenCL_CXX_WORKS - สำเร็จ
-- มองหา pthread.h
-- ค้นหา pthread.h - พบ
-- ทำการทดสอบ CMAKE_HAVE_LIBC_PTHREAD
-- ทำการทดสอบ CMAKE_HAVE_LIBC_PTHREAD - ล้มเหลว
-- มองหา pthread_create ใน pthreads
-- ค้นหา pthread_create ใน pthreads - ไม่พบ
-- มองหา pthread_create ใน pthread
-- ค้นหา pthread_create ใน pthread - พบ
-- พบกระทู้: TRUE
-- พบ CUDA: /usr/local/cuda (พบเวอร์ชัน "11.6")
-- ทำการทดสอบ COMPILER_HAS_HIDDEN_VISIBILITY
-- ดำเนินการทดสอบ COMPILER_HAS_HIDDEN_VISIBILITY - สำเร็จ
-- ทำการทดสอบ COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- ดำเนินการทดสอบ COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - สำเร็จ
-- ทำการทดสอบ COMPILER_HAS_DEPRECATED_ATTR
-- ดำเนินการทดสอบ COMPILER_HAS_DEPRECATED_ATTR - สำเร็จ
-- การเชื่อมโยงกับห้องสมุดเหล่านี้:
/usr/lib/x86_64-linux-gnu/libusb-1.0.so
เธรด
va-drm
เวอร์จิเนีย
/usr/lib/x86_64-linux-gnu/libjpeg.so
/usr/lib/x86_64-linux-gnu/libturbojpeg.so.0
/usr/lib/x86_64-linux-gnu/libglfw.so
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libOpenCL.so
/usr/local/cuda/lib64/libcudart_static.a
-lpthread
ดล
/usr/lib/x86_64-linux-gnu/librt.so
-- พบ Doxygen: /usr/bin/doxygen (พบเวอร์ชัน "1.8.17") พบส่วนประกอบ: doxygen dot
- ตัวอย่างการกำหนดค่า
-- การใช้เป้าหมาย freenect2 ในต้นไม้
- การตรวจสอบโมดูล 'libopenni2'
-- พบ libopenni2 เวอร์ชัน 2.2.0.3
-- พบ OpenNI2: /usr/lib
- รายการคุณสมบัติ:
- CUDA ใช่
-- CXX11 ปิดใช้งาน
-- ตัวอย่างใช่
-- OpenCL ใช่
-- OpenGL ใช่
-- OpenNI2 ใช่
-- หมายเลข TegraJPEG
- เกลียวเล็ก ๆ
-- TurboJPEG ใช่
-- VAAPI ใช่
-- VideoToolbox no (Apple เท่านั้น)
-- streamer_recorder ปิดใช้งาน
-- การกำหนดค่าเสร็จสิ้น
- สร้างเสร็จแล้ว
-- ไฟล์บิลด์ถูกเขียนไปที่: /home/oaxaca/src/doitt/github.com/OpenKinect/libfreenect2/build
ไฟล์ helper_math.h อยู่ที่ไหน
oaxaca@wasayama ~/src/doitt/github.com/OpenKinect/libfreenect2/build $ ทำ -j16
การสแกนการอ้างอิงของเป้าหมาย create_resources_tool
[ 3%] การสร้างวัตถุ CXX CMakeFiles/generate_resources_tool.dir/tools/generate_resources.cpp.o
[ 6%] การเชื่อมโยงถังปฏิบัติการ CXX/generate_resources_tool
[ 6%] สร้างเป้าหมาย create_resources_tool
[ 15%] การสร้าง Resource.inc.h
[ 15%] การสร้างวัตถุ NVCC (อุปกรณ์) CMakeFiles/cuda_compile_1.dir/src/cuda_compile_1_generated_cuda_kde_ความลึก_packet_processor.cu.o
[ 15%] การสร้างวัตถุ NVCC (อุปกรณ์) CMakeFiles/cuda_compile_1.dir/src/cuda_compile_1_generated_cuda_ความลึก_packet_processor.cu.o
/home/oaxaca/src/doitt/github.com/OpenKinect/libfreenect2/src/cuda_html_packet_processor.cu:31:10: ข้อผิดพลาดร้ายแรง: helper_math.h: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
31 | #รวม <helper_math.h>
| ^~~~~~~~~~~~~~~~
การรวบรวมสิ้นสุดลง
/home/oaxaca/src/doitt/github.com/OpenKinect/libfreenect2/src/cuda_kde_ความลึก_packet_processor.cu:39:10: ข้อผิดพลาดร้ายแรง: helper_math.h: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
39 | #รวม <helper_math.h>
| ^~~~~~~~~~~~~~~~
การรวบรวมสิ้นสุดลง
CMake Error ที่ cuda_compile_1_generated_cuda_kde_html_packet_processor.cu.o.RelWithDebInfo.cmake:220 (ข้อความ):
เกิดข้อผิดพลาด
/home/oaxaca/src/doitt/github.com/OpenKinect/libfreenect2/build/CMakeFiles/cuda_compile_1.dir/src/./cuda_compile_1_generated_cuda_kde_ความลึกของแพ็คเก็ต_โปรเซสเซอร์
ข้อผิดพลาด CMake ที่ cuda_compile_1_generated_cuda_html_packet_processor.cu.o.RelWithDebInfo.cmake:220 (ข้อความ):
เกิดข้อผิดพลาด
/home/oaxaca/src/doitt/github.com/OpenKinect/libfreenect2/build/CMakeFiles/cuda_compile_1.dir/src/./cuda_compile_1_generated_cuda_ความลึก_packet_processor.cu.o
ทำ [2]: *** [CMakeFiles/freenect2.dir/build.make:84: CMakeFiles/cuda_compile_1.dir/src/cuda_compile_1_generated_cuda_kde_ความลึก_packet_processor.cu.o] ข้อผิดพลาด 1
make[2]: *** รองานไม่เสร็จ....
ทำ [2]: *** [CMakeFiles/freenect2.dir/build.make:77: CMakeFiles/cuda_compile_1.dir/src/cuda_compile_1_generated_cuda_html_packet_processor.cu.o] ข้อผิดพลาด 1
ทำ [1]: *** [CMakeFiles/Makefile2:118: CMakeFiles/freenect2.dir/all] ข้อผิดพลาด 2
ทำ: *** [Makefile:130: ทั้งหมด] ข้อผิดพลาด 2