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 และปรับปรุงระบบของคุณให้เหมาะสม

บทความที่เกี่ยวข้อง