1. บทนำ
เมื่อใช้งาน GPU บน Ubuntu สิ่งสำคัญคือต้องตรวจสอบสถานะอย่างถูกต้อง โดยเฉพาะอย่างยิ่งสำหรับงาน Deep Learning หรืองาน Render Graphic การทราบสถานะการใช้งาน GPU และเวอร์ชันของไดรเวอร์เป็นสิ่งจำเป็น บทความนี้จะอธิบายวิธีการใช้งาน nvidia-smi
ซึ่งเป็นเครื่องมือสำหรับจัดการ NVIDIA GPU และวิธีการตรวจสอบ GPU บน Ubuntu
2. ตรวจสอบข้อมูล GPU ด้วย nvidia-smi
nvidia-smi
เป็นเครื่องมือ Command Line Tool ที่สามารถตรวจสอบสถานะการใช้งานและปริมาณการใช้หน่วยความจำของ NVIDIA GPU ได้ มีประโยชน์อย่างยิ่งในการตรวจสอบสถานะการทำงานของ GPU แบบเรียลไทม์ หรือเมื่อต้องการรับข้อมูลการใช้งานโดยละเอียด
วิธีใช้งานเบื้องต้น
ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะการใช้งานและปริมาณการใช้หน่วยความจำของ GPU แบบเรียลไทม์:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1
คำสั่งนี้จะให้ข้อมูลโดยละเอียด รวมถึงอัตราการใช้งาน GPU, ปริมาณการใช้หน่วยความจำ, และปริมาณหน่วยความจำที่ว่างอยู่ นอกจากนี้ยังสามารถระบุช่วงเวลาการอัปเดตเป็นวินาทีได้ด้วยตัวเลือก -l
รูปแบบการแสดงผลและบันทึกเป็นไฟล์
โดยค่าเริ่มต้น ข้อมูลจะแสดงในรูปแบบตาราง แต่ก็สามารถส่งออกในรูปแบบ CSV เพื่อให้ง่ายต่อการประมวลผลได้ หากต้องการบันทึกข้อมูลลงในไฟล์ สามารถระบุที่อยู่ไฟล์ปลายทางได้ด้วยตัวเลือก -f
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv
ด้วยวิธีนี้ คุณสามารถบันทึกสถานะการใช้งาน GPU เป็น Log เพื่อนำไปวิเคราะห์ในภายหลังได้
3. รับข้อมูล Process ด้วย nvidia-smi
การใช้ nvidia-smi
ช่วยให้คุณสามารถรับข้อมูล Process ที่กำลังใช้ GPU อยู่ในขณะนี้ได้ ซึ่งจะช่วยให้คุณตรวจสอบได้ว่า Process ใดกำลังใช้ทรัพยากร GPU อยู่เท่าใด
การรับข้อมูล Process
ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบ PID และปริมาณการใช้หน่วยความจำของ Process ที่กำลังใช้ GPU:
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
คำสั่งนี้จะแสดงรายการ Process ของ GPU ที่กำลังทำงานอยู่ พร้อมทั้งแสดงปริมาณการใช้หน่วยความจำของแต่ละ Process
nvidia-smi pmon Subcommand
nvidia-smi
ยังมี Subcommand ชื่อ pmon
ซึ่งสามารถรับข้อมูลโดยละเอียดของ Process ที่ใช้ GPU ได้
nvidia-smi pmon --delay 10 -s u -o DT
คำสั่งนี้จะแสดงข้อมูล Process ของ GPU ตามช่วงเวลาที่กำหนด โดยใช้ตัวเลือก --delay
เพื่อระบุช่วงเวลาการอัปเดตเป็นวินาที นอกจากนี้ยังสามารถเลือกชนิดของข้อมูลที่ต้องการแสดงได้
4. การติดตั้งและตรวจสอบการทำงานของ NVIDIA Driver
ในการใช้ NVIDIA GPU บน Ubuntu จำเป็นต้องติดตั้ง NVIDIA Driver ที่เหมาะสม ขั้นตอนต่อไปนี้คือขั้นตอนการติดตั้งและตรวจสอบการทำงานของ Driver
การติดตั้ง Driver
ขั้นแรก ติดตั้ง NVIDIA Driver ที่เหมาะสมกับระบบของคุณ ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Driver ที่แนะนำ:
sudo apt install nvidia-driver-510
เมื่อการติดตั้งเสร็จสมบูรณ์ ให้รีสตาร์ทระบบ
การตรวจสอบการติดตั้ง
หลังจากรีสตาร์ทแล้ว ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่า Driver ได้รับการติดตั้งอย่างถูกต้องหรือไม่:
nvidia-smi
หากคำสั่งนี้แสดงเวอร์ชันของ Driver และเวอร์ชันของ CUDA แสดงว่าติดตั้งอย่างถูกต้อง

5. การตรวจสอบการทำงานของ GPU ด้วย TensorFlow
เพื่อตรวจสอบว่า GPU ทำงานได้อย่างถูกต้องหรือไม่ คุณสามารถทดสอบโดยใช้ TensorFlow ซึ่งเป็น Framework สำหรับ Machine Learning ได้
การติดตั้ง Anaconda
ขั้นแรก ติดตั้ง Anaconda เพื่อตั้งค่าสภาพแวดล้อม:
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
การตรวจสอบการทำงานด้วย TensorFlow
ถัดไป ตรวจสอบว่า TensorFlow รับรู้ GPU หรือไม่:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
หากคำสั่งนี้แสดงรายการอุปกรณ์ GPU แสดงว่า TensorFlow สามารถรับรู้ GPU ได้อย่างถูกต้อง
6. การตรวจสอบและบันทึก Log ของ GPU
คุณสามารถใช้ nvidia-smi
เพื่อตรวจสอบ GPU แบบเรียลไทม์และบันทึก Log ได้ ซึ่งจะช่วยให้คุณติดตามสถานะการใช้งาน GPU ในระยะยาวและใช้ในการปรับปรุงประสิทธิภาพได้
การตรวจสอบเป็นประจำ
หากต้องการตั้งค่าการตรวจสอบเป็นประจำ ให้ใช้ตัวเลือก -l
ของ nvidia-smi
เพื่อระบุช่วงเวลาการอัปเดต นอกจากนี้ยังสามารถบันทึก Log ลงในไฟล์ได้ด้วย
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log
การควบคุมแบบ Programmatic ด้วย Python Binding
nvidia-smi
มี Python Binding (nvidia-ml-py
) ซึ่งสามารถใช้เพื่อรับข้อมูล GPU แบบ Programmatically จาก Python ได้ การใช้สิ่งนี้ทำให้สามารถตรวจสอบและควบคุมที่ปรับแต่งได้มากขึ้น
7. สรุป
nvidia-smi
เป็นเครื่องมือที่มีประสิทธิภาพในการตรวจสอบสถานะการใช้งานและจัดการ NVIDIA GPU บน Ubuntu บทความนี้ได้อธิบายวิธีการใช้งานเบื้องต้นของ nvidia-smi
ตั้งแต่การรับข้อมูล Process, การติดตั้ง Driver ไปจนถึงการตรวจสอบการทำงานด้วย TensorFlow โปรดใช้ประโยชน์จากสิ่งเหล่านี้เพื่อดึงประสิทธิภาพสูงสุดจาก GPU และปรับปรุงระบบของคุณให้เหมาะสม