openEuler 22.03(LTS-SP2) 上 AMD W6800 GPU压测方法(2)

编译 glmark 2

openEuler 上没有glmark2工具,因此需要自行编译。

下载glmark2源码

关闭git下载代码的SSL验证

git config --global https.sslVerify false
git config --global http.sslVerify false

cd /home

下载glmark2源码
git clone GitHub - glmark2/glmark2: glmark2 is an OpenGL 2.0 and ES 2.0 benchmark

编译glmark2

安装编译工具和其他依赖

yum install -y meson libjpeg* libdrm* libgbm* libudev-*

进入glmark源码路径,创建build目录

cd /home/glmark2/

mkdir build && cd build

meson ../ -Dflavors=drm-gl,drm-glesv2,gbm-gl,gbm-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv2,x11-gl-egl

ninja  -j64

ninja install

Xorg安装

安装Xorg及依赖

yum install -y xorg-* mesa* llvm

cd /usr/lib64

ln -s libLLVM-12.so libLLVM-12.so.1

拷贝运行库

将附件中的modules.rar压缩包解压后,把解压得到的modules目录拷贝到机器/home/目录,并执行后续步骤

cd /home/

cp /usr/lib64/xorg/modules/drivers/amdgpu_drv.so /usr/lib64/xorg/modules/drivers/amdgpu_drv.so.bak

cp /home/modules/drivers/amdgpu_drv.so /usr/lib64/xorg/modules/drivers/amdgpu_drv.so

配置 xorg

验证xorg是否可用

新生成的配置文件在:/root/xorg.conf.new

Xorg -configure

回显如下表明配置一张显卡的Xorg配置文件,如果配置过程中有其余的报错,可以忽略。
image

修改 xorg 配置文件

附件xorg.conf文件中内容覆盖上一步生成的 xorg.conf.new文件。

**注:**其中的 BusID 字段需要根据实际情况进行修改,可通过 lspci 检测显卡的 BusID

lspci | grep -i vga

启动 Xorg

taskset -c 4-5 Xorg :0 -config /root/xorg.conf.new -sharevts > /dev/null 2>&1 &

命令解释:

  1. taskset 将该进程绑定到固定的CPU
  2. 0 为启动的Xorg编号
  3. /root/xorg.conf.new 为启动xorg时使用的配置文件

收集数据

使用 get_gpu.sh 脚本进行数据收集,get_gpu.sh脚本具体内容见文档末尾附录

bash get_gpu.sh > log.txt & tail -F log.txt | grep Oneline

**注:**如果当前已经启动了一个get_gpu.sh 脚本在收集数据,在运行上述命令时会报错,需要把在运行的脚本清理掉,参考如下命令

ps -ef |grep get_gpu

# 杀掉进行,xxx 为上一步查询的回显PID
kill -9 xxx

压力加载

可以将以下指令拷贝至脚本,通过运行脚本进行压力加载

#启动4路terrain用例
for id in `seq 1 4`; do
  echo " ------------------------$id---------------------------------- "
  DISPLAY=":0" glmark2 --run-forever --fullscreen -b terrain > /dev/null 2>&1 &
done

#启动4路glmark2普通用例
for id in `seq 1 4`; do
  echo " ------------------------$id---------------------------------- "
  DISPLAY=":0" glmark2 --run-forever --fullscreen > /dev/null 2>&1 &
done

命令解析:

  1. DISPLAY=“:0” 为步骤3中启动的xorg编号

两张显卡同时压测

若需对第二张显卡同时使能压测,则需要新建一个xorg配置文件xorg.conf.new1,重复以上修改 xorg 配置文件、启动 Xorg、压力加载,并将相应的配置项指向第二张显卡/显示器。 这几个步骤中,需要进行修改的配置项包括:

步骤 显卡1 显卡2
修改 xorg 配置文件 “pci:3:0:0”
“DisplayPort-0”
“screen0” “pci:131:0:0”
“DisplayPort-1”
“screen1”
启动 Xorg taskset -c 4-5 Xorg :0 -config /root/xorg.conf.new -sharevts > /dev/null 2>&1 & taskset -c 4-5 Xorg :1 -config /root/xorg.conf.new1 -sharevts > /dev/null 2>&1 &
压力加载 DISPLAY=“:0” DISPLAY=“:1”

附录

常用指令

# 查看已经启动的 Xorg进程
ps -ef | grep X

# 查看已经启动的glmark2实例进程
ps -ax | grep glmark2

# 查看已经启动的数据收集进程,终止数据收集时需要kill该进程
ps -ax|grep get_gpu
1 Like

写的很详细,很有收获