Hướng dẫn kiểm tra GPU trên Ubuntu ~ Cách sử dụng và thiết lập nvidia-smi ~

1. Giới thiệu

Khi sử dụng GPU trên Ubuntu, điều quan trọng là phải kiểm tra chính xác trạng thái của nó. Đặc biệt, trong các công việc như deep learning và render đồ họa, việc nắm bắt tình trạng sử dụng GPU và phiên bản driver là điều bắt buộc. Bài viết này sẽ hướng dẫn cách sử dụng công cụ quản lý GPU NVIDIA nvidia-smi và cách kiểm tra GPU trên Ubuntu.

2. Kiểm tra thông tin GPU bằng nvidia-smi

nvidia-smi là một công cụ dòng lệnh giúp giám sát trạng thái sử dụng GPU của NVIDIA, bao gồm lượng bộ nhớ sử dụng. Nó đặc biệt hữu ích khi cần kiểm tra tình trạng hoạt động của GPU theo thời gian thực hoặc lấy thông tin chi tiết về mức độ sử dụng.

Cách sử dụng cơ bản

Chạy lệnh sau để kiểm tra trạng thái sử dụng GPU và dung lượng bộ nhớ theo thời gian thực:

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1

Lệnh này sẽ hiển thị thông tin chi tiết như tỷ lệ sử dụng GPU, lượng bộ nhớ đang dùng và dung lượng bộ nhớ còn trống. Ngoài ra, bạn có thể chỉ định khoảng thời gian cập nhật theo giây bằng tùy chọn -l.

Định dạng hiển thị và xuất ra file

Mặc định, kết quả sẽ hiển thị dưới dạng bảng, nhưng bạn cũng có thể xuất dữ liệu dưới dạng CSV để dễ dàng xử lý hơn. Nếu muốn lưu thông tin vào tệp, bạn có thể chỉ định đường dẫn tệp đầu ra bằng tùy chọn -f.

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv

Cách này giúp lưu lại nhật ký sử dụng GPU để phân tích sau này.

3. Lấy thông tin tiến trình với nvidia-smi

nvidia-smi cho phép lấy thông tin về các tiến trình hiện đang sử dụng GPU. Điều này giúp bạn kiểm tra tiến trình nào đang chiếm dụng tài nguyên GPU và mức độ sử dụng của chúng.

Lấy thông tin tiến trình

Chạy lệnh sau để kiểm tra PID của tiến trình đang sử dụng GPU và lượng bộ nhớ chúng đang tiêu thụ:

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader

Lệnh này sẽ trả về danh sách các tiến trình GPU đang chạy kèm theo mức sử dụng bộ nhớ của chúng.

Lệnh con pmon của nvidia-smi

nvidia-smi có lệnh con pmon giúp lấy thông tin chi tiết về tiến trình đang sử dụng GPU.

nvidia-smi pmon --delay 10 -s u -o DT

Lệnh này hiển thị thông tin tiến trình sử dụng GPU theo khoảng thời gian được chỉ định bằng tùy chọn --delay (tính theo giây). Bạn cũng có thể chọn loại thông tin hiển thị theo nhu cầu.

4. Cài đặt và kiểm tra driver NVIDIA

Để sử dụng GPU NVIDIA trên Ubuntu, bạn cần cài đặt driver phù hợp. Dưới đây là hướng dẫn cài đặt và kiểm tra driver.

Cài đặt driver

Trước tiên, cài đặt driver NVIDIA phù hợp với hệ thống của bạn bằng lệnh sau:

sudo apt install nvidia-driver-510

Sau khi cài đặt xong, hãy khởi động lại hệ thống.

Kiểm tra cài đặt

Sau khi khởi động lại, kiểm tra xem driver đã được cài đặt đúng chưa bằng lệnh:

nvidia-smi

Nếu lệnh này hiển thị phiên bản driver và phiên bản CUDA, điều đó có nghĩa là driver đã được cài đặt đúng cách.

5. Kiểm tra hoạt động của GPU với TensorFlow

Để xác nhận rằng GPU hoạt động đúng cách, bạn có thể sử dụng TensorFlow – một framework dành cho học máy.

Cài đặt Anaconda

Trước tiên, cài đặt Anaconda để thiết lập môi trường làm việc:

bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

Xác nhận hoạt động của TensorFlow

Sau khi cài đặt, kiểm tra xem TensorFlow có nhận diện được GPU hay không bằng đoạn mã sau:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Nếu GPU xuất hiện trong danh sách thiết bị, điều đó có nghĩa là TensorFlow đã nhận diện đúng GPU của bạn.

6. Giám sát GPU và ghi nhật ký

Bạn có thể sử dụng nvidia-smi để giám sát GPU theo thời gian thực và lưu nhật ký sử dụng GPU. Điều này giúp theo dõi tình trạng sử dụng GPU trong thời gian dài và tối ưu hóa hiệu suất hệ thống.

Giám sát GPU định kỳ

Để thiết lập giám sát định kỳ, sử dụng tùy chọn -l của nvidia-smi để chỉ định khoảng thời gian cập nhật. Ngoài ra, bạn cũng có thể ghi lại thông tin vào tệp nhật ký.

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Lập trình giám sát bằng Python

nvidia-smi cung cấp thư viện Python nvidia-ml-py, giúp lập trình viên lấy thông tin GPU theo cách linh hoạt hơn. Điều này giúp xây dựng hệ thống giám sát tùy chỉnh và quản lý GPU một cách hiệu quả.

7. Tổng kết

nvidia-smi là một công cụ mạnh mẽ giúp kiểm tra và quản lý GPU NVIDIA trên Ubuntu. Trong bài viết này, chúng tôi đã hướng dẫn từ những thao tác cơ bản của nvidia-smi, cách lấy thông tin tiến trình, cài đặt driver, kiểm tra GPU với TensorFlow, đến việc giám sát hiệu suất GPU.

Hãy tận dụng các công cụ này để tối ưu hóa hệ thống và đảm bảo hiệu suất GPU của bạn hoạt động tốt nhất!

侍エンジニア塾