【问题标题】: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 是否表示可用带宽?

【问题讨论】:

    标签: objective-c xcode gpu metal


    【解决方案1】:

    着色器核心时间表示着色器执行 ALU 指令(即数学)所花费的时间。

    纹理核心时间表示着色器从纹理中获取数据所花费的时间。

    停顿时间表示着色器在执行其指令之前在另一个内核上等待的时间。

    你得到的结果表明,着色器核心花费了大约 87.3% 的时间来等待纹理核心通过 GPU 总线获取数据并过滤数据,然后它才能真正执行数学指令

    这意味着您的着色器没有充分利用着色器核心。

    你可以做很多事情:

    • 您可以在着色器中添加一些不相关的数学运算,而不会影响此着色器的性能
    • 您可以使用不同的算法,这样您的数学运算就不会那么依赖纹理数据,也不需要等待太多时间。
    • 您可以对绘制操作或顶点数据重新排序,从而减少纹理缓存未命中的频率,从而加快速度

    【讨论】:

      猜你喜欢
      • 2018-09-29
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多