สำหรับการดีบักโค้ด CUDA และการตรวจสอบความเข้ากันได้ฉันต้องการค้นหาว่าเวอร์ชันไดรเวอร์ nvidia สำหรับ GPU ที่ฉันติดตั้งไว้คืออะไร ฉันพบวิธีรับเวอร์ชัน cuda แต่นั่นไม่ได้ช่วยฉันที่นี่
สำหรับการดีบักโค้ด CUDA และการตรวจสอบความเข้ากันได้ฉันต้องการค้นหาว่าเวอร์ชันไดรเวอร์ nvidia สำหรับ GPU ที่ฉันติดตั้งไว้คืออะไร ฉันพบวิธีรับเวอร์ชัน cuda แต่นั่นไม่ได้ช่วยฉันที่นี่
คำตอบ:
การใช้nvidia-smi
ควรบอกคุณว่า:
bwood@mybox:~$ nvidia-smi
Mon Oct 29 12:30:02 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.41 Driver Version: 295.41 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. GeForce GTX 580 | 0000:25:00.0 N/A | N/A N/A |
| 54% 70 C N/A N/A / N/A | 25% 383MB / 1535MB | N/A Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. Not Supported |
+-----------------------------------------------------------------------------+
nvidia-smi
นี้:locate nvidia-smi
lspci
คุณสามารถตรวจสอบฮาร์ดแวร์ที่สามารถใช้ได้กับ ตัวอย่างเช่นstackoverflow.com/questions/10310250/…
บนระบบลินุกซ์ใด ๆ ที่ติดตั้งไดรเวอร์ NVIDIA และโหลดลงในเคอร์เนลคุณสามารถดำเนินการ:
cat /proc/driver/nvidia/version
เพื่อรับเวอร์ชันของโมดูลเคอร์เนล NVIDIA ที่โหลดในปัจจุบันตัวอย่างเช่น:
$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 304.54 Sat Sep 29 00:05:49 PDT 2012
GCC version: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
nvidia-smi
is:Failed to initialize NVML: GPU access blocked by the operating system
Failed to initialize NVML: Driver/library version mismatch
nvidia-smi
modinfo
เคล็ดลับไม่
root@nyx:/usr/src# modinfo nvidia|grep version:
version: 331.113
nvidia_XXX
ให้สอดคล้องกับชุดไดรเวอร์หลักที่ฉันติดตั้งและเนื่องจากmodinfo
ไม่รองรับสัญลักษณ์แทนหรือชื่อบางส่วนที่ตรงกันฉันจึงต้องทำสิ่งนี้modinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:
ซึ่งส่งคืนเวอร์ชันไดรเวอร์หลักและเวอร์ชันรองที่ถูกต้อง
modinfo
มี--field
ตัวเลือกบรรทัดคำสั่ง ดังนั้นคุณสามารถข้าม grep modinfo nvidia --field version
นี้: นอกจากนี้ใน ubuntu 16.04 ดูเหมือนจะใช้งานไม่ได้ ERROR: Module nvidia not found
ผมเคยได้รับ
เวอร์ชัน Windows:
cd \ Program Files \ NVIDIA Corporation \ NVSMI
nvidia-smi
[หมายเหตุ: ฉันไม่ได้ลบคำตอบโดยมีจุดประสงค์เพื่อให้คนอื่นเห็นว่าจะไม่ทำอย่างไร]
หากคุณใช้:
me@over_there:~$ dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06
คุณจะได้รับเวอร์ชันของแพ็คเกจไดรเวอร์ nVIDIA ที่ติดตั้งผ่านกลไกการจัดจำหน่ายของคุณ แต่นี่อาจไม่ใช่เวอร์ชันที่ทำงานจริงโดยเป็นส่วนหนึ่งของเคอร์เนลของคุณในขณะนี้
หากต้องการขยายคำตอบของ ccc หากคุณต้องการรวมการค้นหาการ์ดด้วยสคริปต์นี่คือข้อมูลบนไซต์ Nvidia เกี่ยวกับวิธีการ:
https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries
นอกจากนี้ฉันพบว่าหัวข้อนี้กำลังค้นคว้า powershell นี่คือคำสั่งตัวอย่างที่เรียกใช้ยูทิลิตี้เพื่อรับหน่วยความจำที่แท้จริงที่มีอยู่ใน GPU เพื่อเริ่มต้นใช้งาน
# get gpu metrics
$cmd = "& 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi' --query-gpu=name,utilization.memory,driver_version --format=csv"
$gpuinfo = invoke-expression $cmd | ConvertFrom-CSV
$gpuname = $gpuinfo.name
$gpuutil = $gpuinfo.'utilization.memory [%]'.Split(' ')[0]
$gpuDriver = $gpuinfo.driver_version
หากคุณต้องการรับสิ่งนั้นในโปรแกรมที่มี Python บนระบบ Linux สำหรับการทำซ้ำ:
with open('/proc/driver/nvidia/version') as f:
version = f.read().strip()
print(version)
ให้:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.90 Tue Sep 19 19:17:35 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)