วิธีตรวจสอบเวอร์ชัน CUDA บน Ubuntu (รวมคู่มือความเข้ากันได้ของ cuDNN)

目次

1. บทนำ

CUDA (Compute Unified Device Architecture) เป็นแพลตฟอร์มการคำนวณแบบขนานที่พัฒนาโดย NVIDIA ซึ่งใช้ GPU อย่างกว้างขวางสำหรับการเรียนรู้ของเครื่อง, การเรียนรู้เชิงลึก, การเรนเดอร์ 3 มิติ, และงานคำนวณอื่น ๆ อีกมากมาย.

เมื่อใช้ CUDA ในสภาพแวดล้อม Ubuntu จำเป็นต้อง ตรวจสอบเวอร์ชันของ CUDA ด้วยเหตุผลต่อไปนี้:

ความเข้ากันได้ของไดรเวอร์

CUDA รองรับเฉพาะเวอร์ชันของไดรเวอร์ NVIDIA ที่กำหนดเท่านั้น และความไม่เข้ากันอาจทำให้ CUDA ทำงานไม่ถูกต้อง.

ความเข้ากันได้ของไลบรารี

ไลบรารีเช่น TensorFlow และ PyTorch ต้องการเวอร์ชันเฉพาะของ CUDA และ cuDNN ดังนั้นจึงจำเป็นต้องตรวจสอบว่าได้ติดตั้งเวอร์ชันที่ถูกต้อง.

การหลีกเลี่ยงความขัดแย้งของสภาพแวดล้อม

หากมีการติดตั้งหลายเวอร์ชันของ CUDA บนระบบ คุณต้องทราบว่าเวอร์ชันใดกำลังทำงานอยู่และสลับระหว่างเวอร์ชันตามความต้องการ.

คู่มือนี้อธิบายอย่างชัดเจนว่า วิธีตรวจสอบเวอร์ชันของ CUDA บน Ubuntu.

2. วิธีตรวจสอบเวอร์ชันของ CUDA บน Ubuntu

ใน Ubuntu คุณสามารถตรวจสอบเวอร์ชันของ CUDA ได้โดยใช้วิธีต่อไปนี้.

วิธีที่ 1: ตรวจสอบด้วย nvidia-smi (วิธีที่ง่ายที่สุด)

ไดรเวอร์ NVIDIA มีเครื่องมือชื่อ nvidia-smi (NVIDIA System Management Interface) ที่แสดงข้อมูล GPU.

คำสั่ง

nvidia-smi

ตัวอย่างผลลัพธ์

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03    Driver Version: 530.41.03    CUDA Version: 12.1     |
+-----------------------------------------------------------------------------+

จุดสำคัญ

  • บรรทัด CUDA Version: 12.1 แสดง เวอร์ชันสูงสุดของ CUDA ที่ไดรเวอร์รองรับ .
  • ค่านี้อาจแตกต่างจาก เวอร์ชันของ CUDA Toolkit ที่ติดตั้งจริง ดังนั้นควรตรวจสอบวิธีต่อไปด้วย.

วิธีที่ 2: ตรวจสอบด้วย nvcc -V (สำหรับนักพัฒนา)

หาก CUDA ถูกติดตั้งอย่างถูกต้อง คุณสามารถตรวจสอบเวอร์ชันของ nvcc ซึ่งเป็นคอมไพเลอร์ของ CUDA.

คำสั่ง

nvcc -V

ตัวอย่างผลลัพธ์

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Sun_Jul_30_19:09:40_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105

จุดสำคัญ

  • release 12.1, V12.1.105 → แสดง เวอร์ชันของ CUDA Toolkit ที่ติดตั้ง .
  • อาจไม่ตรงกับเวอร์ชันที่แสดงโดย nvidia-smi .

วิธีที่ 3: ตรวจสอบ version.txt (ตรวจสอบด้วยตนเอง)

หาก CUDA ถูกติดตั้งที่ /usr/local/cuda ไฟล์ version.txt จะมีข้อมูลเวอร์ชัน.

คำสั่ง

cat /usr/local/cuda/version.txt

ตัวอย่างผลลัพธ์

CUDA Version 12.1.105

จุดสำคัญ

  • มีประโยชน์เมื่อไม่สามารถใช้ nvcc -V ได้.
  • คุณต้องตรวจสอบให้แน่ใจว่า /usr/local/cuda ถูก เชื่อมโยงอย่างถูกต้อง .

3. วิธีตรวจสอบเวอร์ชันของ cuDNN

cuDNN (CUDA Deep Neural Network) เป็นไลบรารีการเรียนรู้เชิงลึกที่ใช้ร่วมกับ CUDA.
จำเป็นต้องตรวจสอบเวอร์ชันของ cuDNN ควบคู่กับ CUDA.

วิธีที่ 1: ตรวจสอบ cudnn_version.h

เวอร์ชันของ cuDNN ถูกเก็บไว้ในไฟล์หัวข้อ cudnn_version.h.

คำสั่ง

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

ตัวอย่างผลลัพธ์

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1

จุดสำคัญ

  • แสดงว่าได้ติดตั้ง cuDNN 8.9.1.
  • คำสั่ง grep ช่วยดึงข้อมูลเวอร์ชันได้อย่างง่ายดาย.
  • cuDNN และ CUDA ต้องเข้ากัน; ตรวจสอบการจับคู่ที่ถูกต้อง.

วิธีที่ 2: ตรวจสอบด้วย dpkg (สำหรับ Linux แบบ Debian เท่านั้น)

บนระบบที่ใช้ Debian เช่น Ubuntu คุณสามารถตรวจสอบแพคเกจ cuDNN ที่ติดตั้งด้วย dpkg.

คำสั่ง

dpkg -l | grep libcudnn

ตัวอย่างผลลัพธ์

ii  libcudnn8    8.9.1-1+cuda12.1    amd64    NVIDIA cuDNN Library

จุดสำคัญ

  • เวอร์ชันของ cuDNN (8.9.1) ปรากฏในชื่อแพคเกจ.
  • cuda12.1 แสดง เวอร์ชัน CUDA ที่เข้ากันได้ .

ใช้วิธีเหล่านี้เพื่อให้แน่ใจว่าสภาพแวดล้อม CUDA ของคุณถูกตั้งค่าอย่างถูกต้อง.

4. วิธีจัดการหลายเวอร์ชันของ CUDA ที่ติดตั้งอยู่

ใน Ubuntu สามารถติดตั้งหลายเวอร์ชันของ CUDA ได้ อย่างไรก็ตามอาจทำให้สับสนว่าเวอร์ชันใดกำลังใช้งานอยู่ ในกรณีเช่นนี้คุณต้องสลับไปยังเวอร์ชันที่ถูกต้องด้วยตนเอง.

วิธีที่ 1: สลับเวอร์ชันโดยใช้ update-alternatives

Ubuntu อนุญาตให้คุณสลับระหว่างเวอร์ชันของ CUDA ด้วยเครื่องมือ update-alternatives.

ตรวจสอบการตั้งค่าปัจจุบัน

update-alternatives --query cuda

สลับเวอร์ชัน

sudo update-alternatives --config cuda

ตัวอย่างผลลัพธ์

There are 3 choices for the alternative cuda (providing /usr/local/cuda).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/local/cuda-11.8  100       auto mode
  1            /usr/local/cuda-10.2  50        manual mode
  2            /usr/local/cuda-11.8  100       manual mode
  3            /usr/local/cuda-12.1  110       manual mode

Press <enter> to keep the current choice[*], or type selection number:

จุดสำคัญ

  • การรัน update-alternatives --config cuda จะแสดงเวอร์ชัน CUDA ทั้งหมดที่มีอยู่.
  • คุณสามารถเลือกเวอร์ชันที่ต้องการใช้โดยใส่หมายเลขที่สอดคล้อง.
  • มี auto mode และ manual mode; เลือก manual mode สำหรับการสลับด้วยตนเอง.

วิธีที่ 2: กำหนดลิงก์สัญลักษณ์ด้วยตนเอง

คุณยังสามารถเปิดใช้งานเวอร์ชัน CUDA เฉพาะโดยปรับลิงก์สัญลักษณ์ด้วยตนเอง.

ตรวจสอบ Symlink ที่มีอยู่

ls -l /usr/local/cuda

ตัวอย่างผลลัพธ์

lrwxrwxrwx 1 root root 20 Feb  1 12:34 /usr/local/cuda -> /usr/local/cuda-11.8

เปลี่ยนเวอร์ชัน CUDA

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.1 /usr/local/cuda

ตรวจสอบ

ls -l /usr/local/cuda

จุดสำคัญ

  • /usr/local/cuda ใช้เป็นเส้นทาง CUDA เริ่มต้น ดังนั้นการอัปเดตลิงก์นี้จะสลับเวอร์ชันที่ใช้งาน.
  • การใช้ ln -s ทำให้การสลับระหว่างเวอร์ชันเป็นเรื่องง่าย.

โดยใช้วิธีเหล่านี้คุณสามารถจัดการการติดตั้งหลาย CUDA และทำให้แน่ใจว่าเวอร์ชันที่ถูกต้องกำลังใช้งาน.

5. คำถามที่พบบ่อย (FAQ)

ส่วนนี้สรุปปัญหาทั่วไปที่เกี่ยวกับการตรวจสอบเวอร์ชันของ CUDA ใช้เพื่อการแก้ไขปัญหา.

Q1: ไม่พบ nvcc -V!

หากคำสั่ง nvcc หายไป เส้นทางของ CUDA อาจไม่ได้ตั้งค่า.

วิธีแก้ 1: ตรวจสอบว่า CUDA ถูกติดตั้งหรือไม่

ls /usr/local/cuda/

วิธีแก้ 2: เพิ่ม nvcc ไปยัง PATH

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

หลังจากนี้ให้รัน nvcc -V อีกครั้งเพื่อยืนยันว่ามันทำงาน.

Q2: ทำไมเวอร์ชัน CUDA ที่แสดงโดย nvidia-smi ถึงต่างกัน?

เวอร์ชัน CUDA ที่แสดงโดย nvidia-smi แสดงถึง เวอร์ชัน CUDA สูงสุดที่ไดรเวอร์ NVIDIA รองรับ.

ตัวอย่างการตรวจสอบ:

nvidia-smi

ตัวอย่างผลลัพธ์:

CUDA Version: 12.1

อย่างไรก็ตาม นี่ไม่ได้บ่งบอกเวอร์ชันของ CUDA Toolkit ที่ติดตั้งอยู่ ใช้ nvcc -V หรือ version.txt เพื่อตรวจสอบเวอร์ชันที่ติดตั้งจริง.

Q3: ฉันจะตรวจสอบความเข้ากันได้ของ CUDA และ cuDNN อย่างไร?

วิธีที่แม่นยำที่สุดคืออ้างอิงจากเมทริกซ์การสนับสนุนอย่างเป็นทางการของ NVIDIA.

เว็บไซต์อย่างเป็นทางการ:

NVIDIA cuDNN Support Matrix

คุณควรยืนยันความเข้ากันได้โดยตรวจสอบเวอร์ชันที่ติดตั้ง:

ตรวจสอบเวอร์ชัน CUDA

nvcc -V

ตรวจสอบเวอร์ชัน cuDNN

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

โดยการจัดการเวอร์ชันเหล่านี้อย่างเหมาะสม คุณสามารถหลีกเลี่ยงปัญหาที่เกี่ยวกับ CUDA และ cuDNN.

6. สรุป

บทความนี้อธิบายวิธีตรวจสอบเวอร์ชันของ CUDA ในสภาพแวดล้อม Ubuntu มาทบทวนจุดสำคัญกัน.

วิธีตรวจสอบเวอร์ชัน CUDA

MethodCommandDescription
nvidia-sminvidia-smiShows the CUDA version supported by the driver
nvcc -Vnvcc -VShows the installed CUDA Toolkit version
version.txtcat /usr/local/cuda/version.txtManually check the installed CUDA version

วิธีตรวจสอบ cuDNN

MethodCommandDescription
cudnn_version.hcat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2Check version from the header file
dpkgdpkg -l | grep libcudnnCheck installed cuDNN packages

วิธีสลับเวอร์ชัน CUDA

MethodCommandDescription
update-alternativessudo update-alternatives --config cudaSwitch between multiple CUDA versions
Symbolic Linksudo ln -s /usr/local/cuda-XX.X /usr/local/cudaManually switch CUDA versions

สิ่งที่ควรจำ

  • ตรวจสอบเวอร์ชัน CUDA ของคุณเสมอก่อนการพัฒนา
  • ตรวจสอบความเข้ากันได้ระหว่าง CUDA และ cuDNN
  • ทำความเข้าใจวิธีสลับเวอร์ชันเมื่อมีการติดตั้ง CUDA หลายเวอร์ชัน

โดยการจัดการสภาพแวดล้อมของคุณอย่างเหมาะสม คุณสามารถเพิ่มประสิทธิภาพและความเสถียรของ CUDA ได้สูงสุด
เราหวังว่าคู่มือนี้จะช่วยให้คุณตรวจสอบเวอร์ชัน CUDA ได้อย่างมีประสิทธิภาพบน Ubuntu.