使用xcode GPU捕获金属中的一些参数是啥意思?
Posted
技术标签:
【中文标题】使用xcode GPU捕获金属中的一些参数是啥意思?【英文标题】:What is the meaning of some parameters in metal by using xcode GPU capture?使用xcode GPU捕获金属中的一些参数是什么意思? 【发布时间】:2018-07-23 07:29:00 【问题描述】:Xcode 提供每帧 GPU 捕获,我在一个金属演示中使用它。 当我深入研究函数drawIndexdPrimitive的性能时,我对一些参数感到困惑。
我想知道Texture Unit(Shader core) Time和stall time是什么意思。 Xcode 仅暗示它是纹理激活或停止。为什么它们加起来不等于 100%?纹理被激活是什么意思? 另一个问题是GPU环带宽是什么意思?数字 9.31 是否表示可用带宽?
【问题讨论】:
【参考方案1】:着色器核心时间表示着色器执行 ALU 指令(即数学)所花费的时间。
纹理核心时间表示着色器从纹理中获取数据所花费的时间。
停顿时间表示着色器在执行其指令之前在另一个内核上等待的时间。
你得到的结果表明,着色器核心花费了大约 87.3% 的时间来等待纹理核心通过 GPU 总线获取数据并过滤数据,然后它才能真正执行数学指令
这意味着您的着色器没有充分利用着色器核心。
你可以做很多事情:
您可以在着色器中添加一些不相关的数学运算,而不会影响此着色器的性能 您可以使用不同的算法,这样您的数学运算就不会那么依赖纹理数据,也不需要等待太多时间。 您可以对绘制操作或顶点数据重新排序,从而减少纹理缓存未命中的频率,从而加快速度【讨论】:
以上是关于使用xcode GPU捕获金属中的一些参数是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。 systrace 中的“GPU 完成”线程是啥意思