【发布时间】:2011-12-07 12:21:56
【问题描述】:
有标准的着色器函数库,例如Cg。但是是否有资源可以告诉您每个操作需要多长时间...我的想法类似于您过去能够查看每个 ASM 操作需要多少个周期。
【问题讨论】:
-
因设备而异
-
我想,现在更重要的是你可以加载多少个处理器。如果你设置一个带有依赖纹理读取的重型着色器,你会遇到停顿和等待以及其他不愉快的事情。在这种情况下,纯粹的“循环计数”将无济于事。
-
两者都是正确的 - 但一些想法仍然可以作为一个起点。例如数学/几何函数...除法与 cos 或 cos 与 acos 或 sqrt 与 tan 的比较...
-
@John 我猜它们通常或多或少是相同的周期,但我不能说它们与简单的 MUL 和 ADD 相比的表现如何。但我所知道的是,至少在 NVDIA 的架构中,多处理器用于超越函数(如 sin、sqrt、...)的 ALU 比简单的 MUL/ADD-ALU(可能是 8:1 或 4:1)少,所以它们可以并行执行比 SIN/SQRT 更多的 MUL/ADD。除此之外,您可能需要询问各个 GPU 开发人员。
标签: performance opengl 3d shader direct3d