Cài đặt CUDA và cuDNN trên Ubuntu 24.04: Đánh thức sức mạnh GPU cho Deep Learning

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

Tại sao máy có card khủng mà train AI vẫn chậm như rùa?

Bạn vừa chi hơn 40 triệu cho một chiếc RTX 4090 nhưng khi chạy code Python, quạt GPU im lìm còn CPU thì load 100%? Đây là nỗi ám ảnh kinh điển của dân làm AI. Cảm giác giống như bạn đang lái một chiếc Ferrari nhưng lại phải đẩy bộ vì… chưa đổ xăng.

Vấn đề nằm ở chỗ phần mềm chưa biết cách “nói chuyện” với phần cứng. Các thư viện như PyTorch hay TensorFlow cần một cầu nối để đẩy các phép toán ma trận xuống nhân CUDA. Nếu thiếu CUDA Toolkit và cuDNN, hệ thống sẽ tự động chuyển về chạy bằng CPU. Kết quả là tốc độ xử lý giảm tới 20-50 lần, khiến việc train một model đơn giản cũng mất cả ngày.

Sau nhiều lần “vọc vạch” và cả chục lần cài lại hệ điều hành tại phòng Lab, mình đã rút ra quy trình chuẩn nhất. Bài viết này sẽ giúp bạn thiết lập môi trường trên Ubuntu 24.04 (Noble Numbat) chỉ trong 15 phút.

Bản chất của vấn đề: Tại sao phải là CUDA và cuDNN?

Để tối ưu hiệu suất, chúng ta cần hiểu rõ vai trò của từng thành phần:

  • NVIDIA Driver: Lớp nền tảng để Linux nhận diện được sự tồn tại của card đồ họa.
  • CUDA Toolkit: Nền tảng tính toán song song. Nó cho phép bạn dùng Python hoặc C++ để tận dụng hàng nghìn nhân nhỏ bên trong GPU cho các tác vụ nặng.
  • cuDNN (CUDA Deep Neural Network library): Đây là “vũ khí bí mật” chứa các thuật toán tối ưu riêng cho Deep Learning. Thiếu cuDNN, việc train các kiến trúc như Transformer hay CNN sẽ cực kỳ chậm chạp.

Lỗi phổ biến nhất là cài lệch phiên bản. Một chiếc driver quá cũ sẽ không thể chạy được CUDA 12.x mới nhất, dẫn đến lỗi “NVIDIA driver mismatch” ngay khi khởi động.

Chọn phương án cài đặt thông minh

Hiện có 3 cách cài đặt phổ biến, nhưng không phải cách nào cũng an toàn:

  1. Dùng kho mặc định (apt install nvidia-cuda-toolkit): Tiện nhưng rất tệ. Phiên bản trên đây thường cũ hơn 1-2 năm so với thực tế, không hỗ trợ tốt cho các dòng RTX 40-series.
  2. Dùng file .run: Cách này cực kỳ dễ gây xung đột driver. Chỉ cần một lệnh sudo apt upgrade vô tình, màn hình của bạn có thể bị đen (black screen) ngay lập tức.
  3. Sử dụng NVIDIA Network Repository (Khuyên dùng): Đây là cách mình áp dụng cho toàn bộ server tại công ty. Bạn thêm kho lưu trữ chính chủ của NVIDIA vào máy. Việc cập nhật hay gỡ bỏ sau này cực kỳ sạch sẽ và an toàn.

Quy trình cài đặt “sạch” trên Ubuntu 24.04

Bước 1: Dọn dẹp tàn dư

Hãy xóa sạch các bản cài lỗi trước đó để tránh xung đột thư viện. Đừng chủ quan, bước này giúp bạn tiết kiệm hàng giờ debug sau này.

sudo apt-get purge nvidia* -y
sudo apt-get autoremove -y
sudo apt-get autoclean

Bước 2: Cài đặt Driver NVIDIA ổn định

Thay vì tự đoán, hãy để Ubuntu đề xuất bản driver tốt nhất cho phần cứng của bạn:

sudo ubuntu-drivers devices

Nhìn vào dòng có chữ recommended. Ví dụ là nvidia-driver-550, hãy cài nó:

sudo apt install nvidia-driver-550
sudo reboot

Sau khi máy khởi động lại, hãy gõ nvidia-smi. Nếu bảng thông số hiện lên kèm mức tiêu thụ điện và bộ nhớ, bạn đã xong 50% công việc.

Bước 3: Cài đặt CUDA Toolkit từ Repo chính chủ

Chúng ta sẽ lấy gói cài đặt trực tiếp từ server của NVIDIA để đảm bảo tính tương thích cao nhất với Ubuntu 24.04:

# Cài đặt các gói phụ trợ cần thiết
sudo apt install build-essential dkms -y

# Thêm Keyring của NVIDIA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# Cập nhật và cài đặt CUDA 12.6
sudo apt update
sudo apt install cuda-toolkit-12-6 -y

Bước 4: Cài đặt thư viện cuDNN 9

NVIDIA đã thay đổi cách phân phối cuDNN. Giờ đây bạn không cần tải file zip rồi copy thủ công như các bản hướng dẫn cũ năm 2022 nữa.

sudo apt install libcudnn9-cuda-12 -y

Bước 5: Thiết lập biến môi trường

Nhiều bạn cài xong nhưng gõ nvcc -V vẫn báo lỗi “command not found”. Đó là do bạn chưa chỉ đường dẫn cho hệ thống.

Mở file cấu hình:

nano ~/.bashrc

Thêm hai dòng này vào cuối file (kiểm tra kỹ phiên bản 12.6 hay 12.x tùy lúc bạn cài):

export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Nhấn Ctrl + O, Enter để lưu và source ~/.bashrc để áp dụng ngay.

Kiểm tra thành quả

Đừng vội mừng, hãy kiểm tra xem PyTorch đã thực sự “nhận diện” được GPU chưa. Mở terminal và chạy lệnh Python sau:

python3 -c "import torch; print('CUDA check:', torch.cuda.is_available()); print('Device:', torch.cuda.get_device_name(0))"

Nếu kết quả là True kèm tên card đồ họa, xin chúc mừng! Bạn đã sẵn sàng để fine-tune Llama 3 hay train Stable Diffusion mà không lo nghẽn cổ chai phần mềm.

Việc setup môi trường AI đôi khi khá gây ức chế. Nếu bạn gặp lỗi unmet dependencies hay nouveau driver conflict, hãy để lại comment bên dưới, mình sẽ hỗ trợ giải quyết nhanh gọn.

Share: