GPU硬件入门

如果操作系统不支持lspci命令,需要安装
root@b57334c4f529:~# apt-get install pciutils -y  #或者centos yum install pciutils -y

1首先验证你是否有nvidia的显卡(http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡)
root@b57334c4f529:~# lspci | grep -i nvidia
29:00.0 VGA compatible controller: NVIDIA Corporation Device 1b06 (rev a1)
29:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)

2查看的Linux发型版本(主要是看是32位还是64位)
root@b57334c4f529:~# uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
root@b57334c4f529:~#

3查看gcc的版本
root@b57334c4f529:~# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.10' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
root@b57334c4f529:~#

4查看NVIDIA显卡的驱动版本
root@b57334c4f529:~# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.111  Tue Dec 19 23:51:45 PST 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
root@b57334c4f529:~#

5查看nvcc编译器的版本
nvcc -V i
6查看本机的NVIDIA显卡
root@b57334c4f529:/dev# ls /dev/nvidia*
/dev/nvidia-uvm  /dev/nvidia-uvm-tools  /dev/nvidia0  /dev/nvidiactl



查询nvidia-smi帮助手册
root@b57334c4f529:~# nvidia-smi --help
查看显卡名称以及驱动版本
root@b57334c4f529:~# nvidia-smi
root@b57334c4f529:~# nvidia-smi -a


root@b57334c4f529:~# nvidia-smi

第一栏的GPU Fan : N/A是风扇转速,从0到100%之间变动。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温。
                 N/A表示没有风扇
第二栏的Temp:是GPU温度,单位摄氏度,(GPU温度过高会导致GPU频率下降)
第三栏的Perf:是性能状态,从P0到P12, P0表示最大性能,P12表示状态最小性能
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能打,但是在新的GPU应用启动时,
              花费的时间更少,这里显示的是off的状态
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化
第六栏的Memory-Usage是显存使用率。
第七栏Volatile GPU-Util:是浮动的GPU利用率
第八栏上方是关于ECC的东西,shifou开启错误检查和纠正技术0/DISABLED, 1/ENABLED
第八栏下方Compute M是计算模式,0/DEFAULT, 1/EXCLUSIVE_PROCESS, 2/PROHIBITED
下面一张表示每个进程占用的显存使用率,这台GPU目前什么有俄密友跑。
显存占用和GPU占用是两个不一样的概念。显卡是由GPU和显存等组成,显存和GPU类似于内存和cpu的关系

设置10s更新一次显存的情况
watch -n 10 nvidia-smi
查看所有GPU的版本详细信息
root@b57334c4f529:~# nvidia-smi -q

指定某个GPU
nvidia-smi –i xxx


动态刷新信息,课指定刷新频率,以秒为单位
nvidia-smi –l xxx

将查询的信息输出到具体的文件中,不在终端显示
nvidia-smi –f xxx

二 nvidia-smi -q
2.1 显示单元而不是GPU的属性
root@b57334c4f529:~# nvidia-smi  -q -u

==============NVSMI LOG==============

Timestamp                           : Tue Dec 11 02:22:51 2018
Driver Version                      : 384.111

HIC Info                            : N/A
Attached Units                      : 0

2.2指定具体的GPU或unit信息
root@b57334c4f529:~# nvidia-smi -q -i xxx


2.3将查询的信息输出到具体的文件中, 不在终端显示
root@b57334c4f529:~# nvidia-smi -q -f xxx

2.4将查询的信息以xml的形式输出
root@b57334c4f529:~# nvidia-smi -q -x

2.5将查询的信息以xml的形式输出
root@b57334c4f529:~# nvidia-smi -q -d xxx
指定显示GPU卡某些信息,xxx参数可以为MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER,CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT,ACCOUNTING

2.6动态刷新信息,按Ctrl+C停止,可指定刷新频率,以秒为单位
root@b57334c4f529:~# nvidia-smi -q -l xxx

2.7 选择性查询选项,可以指定显示的属性选项
查看哪些属性
root@b57334c4f529:~# nvidia-smi --help-query-gpu

root@b57334c4f529:~# nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv
name, pci.bus_id, vbios_version
GeForce GTX 1080 Ti, 00000000:29:00.0, 86.02.39.00.9E
root@b57334c4f529:~#


2.3可以手动设置GPU卡设备的状态选项
可以手动设置GPU卡设备的状态选项

nvidia-smi –pm 0/1

设置持久模式:0/DISABLED,1/ENABLED

nvidia-smi –e 0/1

切换ECC支持:0/DISABLED, 1/ENABLED

nvidia-smi –p 0/1

重置ECC错误计数:0/VOLATILE, 1/AGGREGATE

nvidia-smi –c

设置计算应用模式:0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED

nvidia-smi –r

GPU复位

nvidia-smi –vm

设置GPU虚拟化模式

nvidia-smi –ac xxx,xxx

设置GPU运行的工作频率。e.g. nvidia-smi –ac2000,800

nvidia-smi –rac

将时钟频率重置为默认值

nvidia-smi –acp 0/1

切换-ac和-rac的权限要求,0/UNRESTRICTED, 1/RESTRICTED

nvidia-smi –pl

指定最大电源管理限制(瓦特)

nvidia-smi –am 0/1

启用或禁用计数模式,0/DISABLED,1/ENABLED

nvidia-smi –caa

清除缓冲区中的所有已记录PID,0/DISABLED,1/ENABLED

2.4 nvidia-smi dmon
设备监控命令, 以滚动条形式显示GPU设备统计信息
GPU设备信息以一行的滚动格式显示,要监控的指标可以基于窗口的宽度进行调整,监控最多,如果没有指定任何GPU.则默认加浓GPU0-GPU3(GPU索引从0开始)
附加选项:

nvidia-smi dmon –i xxx

用逗号分隔GPU索引,PCI总线ID或UUID

nvidia-smi dmon –d xxx

指定刷新时间(默认为1秒)

nvidia-smi dmon –c xxx

显示指定数目的统计信息并退出


nvidia-smi dmon –s xxx

指定显示哪些监控指标(默认为puc),其中:

p:电源使用情况和温度(pwr:功耗,temp:温度)

u:GPU使用率(sm:流处理器,mem:显存,enc:编码资源,dec:解码资源)

c:GPU处理器和GPU内存时钟频率(mclk:显存频率,pclk:处理器频率)

v:电源和热力异常

m:FB内存和Bar1内存

e:ECC错误和PCIe重显错误个数

t:PCIe读写带宽

nvidia-smi dmon –o D/T

指定显示的时间格式D:YYYYMMDD,THH:MM:SS

nvidia-smi dmon –f xxx

将查询的信息输出到具体的文件中,不在终端显示


2.5   nvidia-smi pmon

进程监控命令,以滚动条形式显示GPU进程状态信息。

GPU进程统计信息以一行的滚动格式显示,此工具列出了GPU所有进程的统计信息。要监控的指标可以基于终端窗口的宽度进行调整。 监控最多4个GPU,如果没有指定任何GPU,则默认监控GPU0-GPU3(GPU索引从0开始)。

附加选项:

nvidia-smi pmon –i xxx

用逗号分隔GPU索引,PCI总线ID或UUID

nvidia-smi pmon –d xxx

指定刷新时间(默认为1秒,最大为10秒)

nvidia-smi pmon –c xxx

显示指定数目的统计信息并退出

nvidia-smi pmon –s xxx

指定显示哪些监控指标(默认为u),其中:

u:GPU使用率

m:FB内存使用情况

nvidia-smi pmon –o D/T

指定显示的时间格式D:YYYYMMDD,THH:MM:SS

nvidia-smi pmon –f xxx

将查询的信息输出到具体的文件中,不在终端显示

猜你喜欢

转载自blog.csdn.net/xsjzdrxsjzdr/article/details/84951952