AICurious Logo
Published on
Wednesday, April 17, 2019

Cấu hình iGPU cho xserver và GPU Nvidia cho tác vụ CUDA trong Ubuntu 18.04

713 words4 min read
Authors

Trên thực tế, ngoài các tác vụ CUDA (có thể là huấn luyện model học máy) sử dụng tới card Nvidia, hệ điều hành cũng tiêu tốn một lượng bộ nhớ kha khá cho việc hiển thị. Bài viết này sẽ hướng dẫn các bạn sử dụng card đồ hoạ onboard để cho việc hiển thị, từ đó tiết kiệm một lượng bộ nhớ đáng kể cho card đồ hoạ Nvidia để dành cho việc huấn luyện model.

  • Đầu tiên, bạn cần có:
    • Máy tính sử dụng Ubuntu hoặc hệ điều hành tương đương. Ở đây tôi sử dụng Ubuntu 18.04.
    • Máy tính của bạn có card đồ hoạ onboard (của Intel).
    • Bạn cắm dây màn hình vào cổng xuất đồ hoạ (có thể là HDMI) trên mainboard thay vì trên card màn hình. Có thể bạn sẽ cần cấu hình BIOS để hệ thống xuất hình qua cổng HDMI trên mainboard khi khởi động.

Bước 1: Cài đặt driver cho card Nvidia và CUDA

Tôi sẽ cùng bạn sử dụng hướng dẫn này để cài đặt đúng driver và các package CUDA cần thiết.

Đầu tiên mở Terminal (Ctrl+Alt+t).

Xoá CUDA PPA và package nvidia-cuda-toolkit nếu được cài đặt từ trước:

sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit

Gỡ driver cũ (khuyến khích):

sudo apt remove --autoremove nvidia-*

Cập nhật hệ thống:

sudo apt update && sudo apt full-upgrade

Thêm PPA và setup key server:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-key adv --fetch-keys  http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

Và thêm các repo chứa driver:

sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda_learn.list'

Cập nhật cơ sử dữ liệu gói:

sudo apt update

Cài CUDA 10.0. Lưu ý driver tương ứng cũng sẽ được cài đặt sau bước này.

sudo apt install cuda-10-0

Cài cudnn 7.5:

sudo apt install libcudnn7

Thêm các dòng sau vào file ~/.profile:

# set PATH for cuda 10.0 installation
if [ -d "/usr/local/cuda-10.0/bin/" ]; then
    export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi

Sau bước này bạn hãy khởi động lại và kiểm tra mọi thứ với lệnh nvcc --version.

Bước 2: Cấu hình để hệ thống sử dụng card đồ hoạ onboard theo mặc định:

  • Tạo file /etc/X11/xorg.conf với nội dung sau:
Section "Device"
    Identifier      "intel"
    Driver          "intel"
    BusId           "PCI:0:2:0"
EndSection

Section "Screen"
    Identifier      "intel"
    Device          "intel"
EndSection

Bạn cần thay đổi BusId cho phù hợp với GPU của bạn. Bạn có thể kiểm tra bằng lệnh sau: (Chú ý output của card đồ hoạ tương tứng của tôi là 00:02.0, do vậy tôi sử dụng PCI:0:2:0.)

lspci  | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Desktop)
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2070] (rev a1)
  • Khởi động lại máy tính.

Bước 3: Kiểm tra kết quả

Nếu mọi thứ đi đúng hướng, sau khi khởi động lại máy tính, máy sẽ sử dụng card onboard để hiển thị. Kiểm tra với lệnh sau:

nvidia-smi

Nếu bạn nhìn thấy No running processes found như ảnh dưới, hệ thống đang sử dụng card onboard để hiển thị, và chúng ta đã thành công!. Bạn có thể thử chạy một tác vụ học máy (train thử 1 model chẳng hạn, để chắc chắn CUDA vẫn hoạt động tốt).

nvidia-smi