1. Giới thiệu
Khi sử dụng GPU trên Ubuntu, việc giám sát trạng thái của nó một cách chính xác là rất quan trọng. Điều này đặc biệt cần thiết trong các khối lượng công việc liên quan đến học sâu hoặc render đồ họa, nơi việc hiểu rõ mức độ sử dụng GPU và phiên bản driver là bắt buộc. Trong bài viết này, chúng tôi sẽ giải thích cách sử dụng nvidia-smi, một công cụ quản lý GPU của NVIDIA, và giới thiệu các phương pháp kiểm tra thông tin 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 cho phép bạn giám sát mức độ sử dụng, bộ nhớ và các thông tin chi tiết khác về các GPU NVIDIA. Nó đặc biệt hữu ích khi kiểm tra hoạt động GPU theo thời gian thực hoặc lấy các chỉ số sử dụng chi tiết.
Cách sử dụng cơ bản
Bạn có thể dùng lệnh sau để giám sát mức độ sử dụng GPU và 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 trả về thông tin chi tiết bao gồm mức độ sử dụng GPU, bộ nhớ đã dùng và bộ nhớ còn trống. Tùy chọn -l cho phép bạn đặt khoảng thời gian làm mới tính bằng giây.
Định dạng hiển thị và xuất file
Mặc định, kết quả được hiển thị dưới dạng bảng, nhưng bạn có thể xuất chúng dưới dạng CSV để dễ xử lý hơn. Nếu muốn lưu thông tin vào một tệp, hãy chỉ định đích 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
Điều này cho phép bạn lưu nhật ký sử dụng GPU và phân tích chúng sau này.
3. Lấy thông tin tiến trình với nvidia-smi
nvidia-smi cũng cho phép bạn truy xuất thông tin về các tiến trình đang sử dụng GPU. Điều này giúp xác định mỗi tiến trình tiêu tốn bao nhiêu tài nguyên GPU.
Lấy thông tin tiến trình
Sử dụng lệnh sau để xem PID và mức độ sử dụng bộ nhớ của các tiến trình đang dùng GPU:
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
Lệnh này trả về danh sách các tiến trình GPU đang hoạt động và hiển thị mức độ sử dụng bộ nhớ của từng tiến trình.
Lệnh phụ nvidia-smi pmon
Công cụ nvidia-smi còn có lệnh phụ pmon, cung cấp việc giám sát chi tiết các tiến trình GPU.
nvidia-smi pmon --delay 10 -s u -o DT
Lệnh này hiển thị thông tin tiến trình GPU ở các khoảng thời gian được chỉ định. Tùy chọn --delay định nghĩa khoảng thời gian làm mới tính bằng giây, và bạn có thể chọn những thông tin muốn hiển thị.
4. Cài đặt và xác minh driver NVIDIA
Để sử dụng GPU NVIDIA trên Ubuntu, cần cài đặt driver NVIDIA phù hợp. Dưới đây là các bước cài đặt và xác minh.
Cài đặt driver
Đầu tiên, cài đặt driver NVIDIA thích hợp cho hệ thống của bạn bằng lệnh sau:
sudo apt install nvidia-driver-510
Sau khi cài đặt hoàn tất, khởi động lại hệ thống.
Xác minh cài đặt
Sau khi khởi động lại, chạy lệnh sau để xác nhận driver đã được cài đặt đúng cách:
nvidia-smi
Nếu phiên bản driver và phiên bản CUDA xuất hiện, việc cài đặt đã thành công. 
5. Xác minh hoạt động GPU với TensorFlow
Bạn cũng có thể xác minh chức năng GPU bằng cách thử nghiệm với TensorFlow, một framework học máy.
Cài đặt Anaconda
Đầu tiên, cài đặt Anaconda và thiết lập môi trường của bạn:
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
Kiểm tra nhận dạng GPU trong TensorFlow
Tiếp theo, xác nhận TensorFlow có nhận ra GPU hay không:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Nếu thiết bị GPU xuất hiện trong danh sách, TensorFlow đã phát hiện thành công GPU.
6. Giám sát và ghi log GPU
nvidia-smi cho phép giám sát GPU theo thời gian thực và ghi lại nhật ký. Điều này giúp theo dõi mức độ sử dụng GPU qua thời gian và tối ưu hoá hiệu năng.
Giám sát định kỳ
Để thiết lập giám sát định kỳ, sử dụng tùy chọn -l để chỉ định khoảng thời gian cập nhật, và tùy chọn ghi dữ liệu vào một tệp:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log
Điều khiển lập trình qua Python Bindings
nvidia-smi cung cấp các bindings Python (nvidia-ml-py) cho phép bạn lấy thông tin GPU một cách lập trình. Điều này cho phép giám sát và điều khiển tùy chỉnh hơn từ các script Python.
7. Kết luận
nvidia-smi là một công cụ mạnh mẽ để kiểm tra và quản lý việc sử dụng GPU NVIDIA trên Ubuntu. Bài viết này đã giải thích cách sử dụng cơ bản, giám sát quy trình, cài đặt driver, và xác minh GPU TensorFlow. Sử dụng các kỹ thuật này để tối đa hóa hiệu suất GPU và tối ưu hóa hệ thống của bạn.


