#trace #driver #performance #gpu #different #graphics #tooling

app gpu-trace-perf

在不同的环境下运行一系列 GPU 迹象,以评估驱动程序对性能的影响

7 个稳定版本

1.3.1 2020年8月21日
1.3.0 2020年4月16日
1.1.1 2020年3月27日

#399 in 图形API

MIT 许可证

28KB
508 代码行

gpu-trace-perf

这是我对一些工具的 Rust 重写,这些工具用于比较不同图形驱动程序设置在图形迹象中的性能。目标是让驱动程序开发者能够快速实验并找出他们的更改如何影响实际渲染的性能。

目前只支持 apitrace 和 renderdoc 迹象。每个绘制调用都使用 GPU 时间已过查询括起来,然后我们在最后一帧中累加它们,并比较两个驱动程序之间的总时间。因此,百分比变化列中的负数表示您的驱动程序更改是一个改进。

安装

apt-get install cargo
cargo install gpu-trace-perf

对于 apitrace 迹象 (*.trace),您还需要安装 apitrace。我建议启用 apitrace 的 waffle 后端,并在环境中设置 WAFFLE_PLATFORM=gbm 以防止屏幕上不断闪烁窗口。

对于 renderdoc 迹象 (*.rdc),您需要

  • python3
  • 安装 renderdoc(《sudo apt-get install renderdoc
  • renderdoc 的 python 模块可以从 python3 中找到。

(我非常希望能够通过尝试 pyembed 来嵌入 Python 解释器,或者最好是将 renderdoc-rs 扩展到支持回放 API 来删除 python3 的要求)

示例用法

gpu-trace-perf run--traces$HOME/src/traces-db beforedriver afterdriver

此命令将在 traces-db 中查找所有迹象,并以循环方式运行它们,直到您准备好按下 ^C。

beforedriverafterdriver 参数是您路径中的脚本,用于设置环境以使用您的新驱动程序,如下所示

#!/bin/sh

export LD_LIBRARY_PATH=$HOME/src/prefix/lib
"$@"

为您的嵌入式设备进行交叉编译

将以下内容添加到 ~/.cargo/config 中

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

设置新工具链和构建

rustup target add aarch64-unknown-linux-gnu
cargo build --release --target aarch64-unknown-linux-gnu gpu-trace-perf
scp target/aarch64-unknown-linux-gnu/release/gpu-trace-perf device:bin/

许可证

基于MIT许可证(LICENSE-MIThttp://opensource.org/licenses/MIT)授权

依赖项

~7–17MB
~193K SLoC