Cách Kiểm Tra Phiên Bản CUDA Trên Ubuntu (Kèm Hướng Dẫn Tương Thích cuDNN)

目次

1. Giới thiệu

CUDA (Compute Unified Device Architecture) là một nền tảng tính toán song song do NVIDIA phát triển, sử dụng GPU. Nó được sử dụng rộng rãi cho học máy, học sâu, render 3D và nhiều khối lượng công việc tính toán khác.

Khi sử dụng CUDA trong môi trường Ubuntu, việc kiểm tra phiên bản CUDA là quan trọng vì các lý do sau:

Tương thích Driver

CUDA chỉ hỗ trợ một số phiên bản driver NVIDIA nhất định, và sự không tương thích có thể ngăn CUDA hoạt động đúng.

Tương thích Thư viện

Các thư viện như TensorFlow và PyTorch yêu cầu các phiên bản cụ thể của CUDA và cuDNN, vì vậy cần xác minh rằng các phiên bản đúng đã được cài đặt.

Tránh xung đột môi trường

Nếu có nhiều phiên bản CUDA được cài đặt trên hệ thống, bạn phải biết phiên bản nào đang hoạt động và chuyển đổi giữa chúng khi cần.

Hướng dẫn này giải thích rõ ràng cách kiểm tra phiên bản CUDA trên Ubuntu.

2. Cách Kiểm Tra Phiên Bản CUDA Trên Ubuntu

Trên Ubuntu, bạn có thể kiểm tra phiên bản CUDA bằng các phương pháp sau.

Phương pháp 1: Kiểm tra bằng nvidia-smi (Phương pháp dễ nhất)

Driver NVIDIA bao gồm một công cụ gọi là nvidia-smi (Giao diện Quản lý Hệ thống NVIDIA) hiển thị thông tin GPU.

Lệnh

nvidia-smi

Ví dụ Kết quả

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

Điểm chính

  • Dòng CUDA Version: 12.1 cho thấy phiên bản CUDA tối đa mà driver hỗ trợ .
  • Điều này có thể khác với phiên bản CUDA Toolkit thực tế đã cài đặt, vì vậy cũng nên kiểm tra các phương pháp tiếp theo.

Phương pháp 2: Kiểm tra bằng nvcc -V (Dành cho nhà phát triển)

Nếu CUDA được cài đặt đúng, bạn có thể kiểm tra phiên bản của nvcc, trình biên dịch CUDA.

Lệnh

nvcc -V

Ví dụ Kết quả

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

Điểm chính

  • release 12.1, V12.1.105 → Điều này cho biết phiên bản CUDA Toolkit đã cài đặt .
  • Nó có thể không khớp với phiên bản được hiển thị bởi nvidia-smi .

Phương pháp 3: Kiểm tra version.txt (Kiểm tra thủ công)

Nếu CUDA được cài đặt trong thư mục /usr/local/cuda, tệp version.txt chứa thông tin phiên bản.

Lệnh

cat /usr/local/cuda/version.txt

Ví dụ Kết quả

CUDA Version 12.1.105

Điểm chính

  • Hữu ích khi nvcc -V không khả dụng.
  • Bạn phải đảm bảo rằng /usr/local/cuda được liên kết tượng trưng đúng .

3. Cách Kiểm Tra Phiên Bản cuDNN

cuDNN (CUDA Deep Neural Network) là một thư viện học sâu được sử dụng cùng với CUDA.
Việc kiểm tra phiên bản cuDNN cùng với CUDA là quan trọng.

Phương pháp 1: Kiểm tra cudnn_version.h

Phiên bản cuDNN được lưu trong tệp header cudnn_version.h.

Lệnh

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

Ví dụ Kết quả

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

Điểm chính

  • Chỉ ra rằng cuDNN 8.9.1 đã được cài đặt.
  • Lệnh grep giúp trích xuất thông tin phiên bản một cách dễ dàng.
  • cuDNN và CUDA phải tương thích; hãy xác minh cặp đúng.

Phương pháp 2: Kiểm tra bằng dpkg (Chỉ dành cho Linux dựa trên Debian)

Trên các hệ thống dựa trên Debian như Ubuntu, bạn có thể kiểm tra các gói cuDNN đã cài đặt bằng dpkg.

Lệnh

dpkg -l | grep libcudnn

Ví dụ Kết quả

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

Điểm chính

  • Phiên bản cuDNN (8.9.1) được hiển thị trong tên gói.
  • cuda12.1 chỉ ra phiên bản CUDA tương thích .

Sử dụng các phương pháp này để đảm bảo môi trường CUDA của bạn được cấu hình đúng.

4. Cách Xử Lý Nhiều Phiên Bản CUDA Đã Cài Đặt

Trong Ubuntu, có thể cài đặt nhiều phiên bản CUDA. Tuy nhiên, điều này có thể gây nhầm lẫn về phiên bản đang hoạt động.
Trong các trường hợp như vậy, bạn phải chuyển sang phiên bản đúng một cách thủ công.

Phương Pháp 1: Chuyển Phiên Bản Sử Dụng update-alternatives

Ubuntu cho phép bạn chuyển đổi giữa các phiên bản CUDA bằng công cụ update-alternatives.

Kiểm Tra Cài Đặt Hiện Tại

update-alternatives --query cuda

Chuyển Đổi Phiên Bản

sudo update-alternatives --config cuda

Kết Quả Ví Dụ

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:

Các Điểm Chính

  • Chạy update-alternatives --config cuda sẽ hiển thị tất cả các phiên bản CUDA có sẵn.
  • Bạn có thể chọn phiên bản muốn sử dụng bằng cách nhập số tương ứng.
  • auto modemanual mode đều có sẵn; chọn manual mode để chuyển đổi thủ công.

Phương Pháp 2: Cấu Hình Liên Kết Symbolic Thủ Công

Bạn cũng có thể kích hoạt một phiên bản CUDA cụ thể bằng cách điều chỉnh các liên kết symbolic một cách thủ công.

Kiểm Tra Liên Kết Symbolic Hiện Tại

ls -l /usr/local/cuda

Kết Quả Ví Dụ

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

Thay Đổi Phiên Bản CUDA

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

Xác Nhận

ls -l /usr/local/cuda

Các Điểm Chính

  • /usr/local/cuda được sử dụng làm đường dẫn CUDA mặc định, vì vậy việc cập nhật liên kết này sẽ chuyển phiên bản đang hoạt động.
  • Sử dụng ln -s giúp việc chuyển đổi giữa các phiên bản trở nên dễ dàng.

Bằng cách sử dụng các phương pháp này, bạn có thể quản lý nhiều cài đặt CUDA và đảm bảo phiên bản đúng đang hoạt động.

5. Câu Hỏi Thường Gặp (FAQ)

Phần này tóm tắt các vấn đề thường gặp liên quan đến việc kiểm tra phiên bản CUDA. Sử dụng nó để khắc phục sự cố.

Câu Hỏi 1: nvcc -V không được tìm thấy!

Nếu lệnh nvcc không tồn tại, có thể đường dẫn CUDA chưa được thiết lập.

Giải Pháp 1: Kiểm Tra CUDA Đã Được Cài Đặt Chưa

ls /usr/local/cuda/

Giải Pháp 2: Thêm nvcc vào PATH

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

Sau khi thực hiện, chạy lại nvcc -V để xác nhận nó hoạt động.

Câu Hỏi 2: Tại sao phiên bản CUDA hiển thị bởi nvidia-smi lại khác?

Phiên bản CUDA hiển thị bởi nvidia-smi đại diện cho phiên bản CUDA tối đa mà driver NVIDIA hỗ trợ.

Kiểm Tra Ví Dụ:

nvidia-smi

Kết Quả Ví Dụ:

CUDA Version: 12.1

Tuy nhiên, điều này không cho biết phiên bản CUDA Toolkit đã cài đặt. Hãy sử dụng nvcc -V hoặc version.txt để xác minh phiên bản thực tế đã cài đặt.

Câu Hỏi 3: Làm thế nào để kiểm tra tính tương thích giữa CUDA và cuDNN?

Cách chính xác nhất là tham khảo ma trận hỗ trợ chính thức của NVIDIA.

Trang Chính Thức:

NVIDIA cuDNN Support Matrix

Bạn cũng nên xác nhận tính tương thích bằng cách kiểm tra các phiên bản đã cài đặt:

Kiểm Tra Phiên Bản CUDA

nvcc -V

Kiểm Tra Phiên Bản cuDNN

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

Bằng cách quản lý các phiên bản này một cách hợp lý, bạn có thể tránh các vấn đề liên quan đến CUDA và cuDNN.

6. Tổng Kết

Bài viết này giải thích cách kiểm tra phiên bản CUDA trong môi trường Ubuntu.
Hãy xem lại các điểm chính.

Cách Kiểm Tra Phiên Bản 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

Cách Kiểm Tra 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

Cách Chuyển Đổi Phiên Bản 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

Những Điểm Chính

  • Luôn xác minh phiên bản CUDA của bạn trước khi phát triển
  • Kiểm tra tính tương thích giữa CUDA và cuDNN
  • Hiểu cách chuyển đổi phiên bản khi có nhiều cài đặt CUDA tồn tại

Bằng cách quản lý môi trường một cách đúng đắn, bạn có thể tối đa hoá hiệu năng và độ ổn định của CUDA.
Chúng tôi hy vọng hướng dẫn này giúp bạn xác minh phiên bản CUDA một cách hiệu quả trên Ubuntu.