一、查看CPU信息的命令
1. 查看cpu型号:
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c  (如:72  Intel(R) Xeon(R) Gold 6240     CPU @ 2.60GHz)
2. 查看cpu使用情况:
      top
3. 查看物理cpu个数:
     cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
4.查看逻辑cpu个数:
    cat /proc/cpuinfo |grep "processor"|wc -l
5.查看cpu核数:
    cat /proc/cpuinfo |grep "cores"|uniq

    总物理CPU核数 = 物理CPU个数 * 每颗物理CPU的核数 
    总逻辑CPU核数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
    ** coding指定和top里看到的都是逻辑CPU **


二、查看内存信息的命令
    查看内存信息:dmidecode  -t  memory (dmidecode需要root权限)
1.查看内存大小,已用空间:
    cat /proc/meminfo 或者free 或者top等
2.查看内存型号等详细信息:
    dmidecode  -t  memory
3.查看内存的插槽数,已经使用多少插槽.每条内存多大
    dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range | cat -n 或者
    dmidecode -t memory | grep Size
4.查看内存规格频率:
    dmidecode  -t  memory|grep Speed
5.查看内存实际频率:
    dmidecode  -t  memory|grep "Configured Clock Speed"


三、查看GPU信息的命令
1. 每隔10s查看显存占用信息,同时可查有几块显卡,显卡型号,显存总大小,目前占用情况等
     watch -n 10 nvidia-smi
2. 查看显卡和CPU的矩阵连接关系
     nvidia-smi topo -m
        
四、内存带宽检测工具的使用:(注意:测试前此机器上不能有其他占用cpu内存的程序在运行,否则测的结果不准)
1.下载关键文件:stream.c、mysecond.c、Makefile     ()
2.编译:make stream_c.exe 
    ( 备注:如果执行make stream_c.exe报:make: *** No rule to make target 'stream_c.exe'.      Stop. 则执行下面的编译命令
     gcc stream.c -o stream_c.exe )
3.设置环境变量OMP_NUM_THREADS以控制执行线程的数量(这个线程数量和逻辑cpu的数量相对应):
     export OMP_NUM_THREADS=16
4.执行copy、scale、add、triad操作的程序时内存与cpu之间的带宽:
     ./stream_c.exe
5.根据不同线程下的带宽值可初步判定当线程数为某个值后再增加并发线程数对程序效率不会有提升,查看此机器理论上可达到的内存和cpu间的带宽,如果已达到那就是cpu和内存间的速度制约的,如果没有达到会怀疑cpu没有得到有效利用,可查看内存条插的位置和个数,可通过调整内存条插的位置或增加内存条数来提升并发效率。      
    备注:注意:如果有编译好的stream_c.exe,也不能直接用,需要在linux上重新编译。

附内存带宽测试工具stream benchmark介绍:

 


 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐