编译 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配置文件,如果配置过程中有其余的报错,可以忽略。
修改 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 &
命令解释:
- taskset 将该进程绑定到固定的CPU
- 0 为启动的Xorg编号
- /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
命令解析:
- 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