我遇到过几种情况,声称在 GLSL 中做点积最终会在一个周期内运行。例如:
顶点和片段处理器在四个向量上运行,在单个周期内执行四分量指令,例如加法、乘法、乘法累加或点积。
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter35.html
我还在某处的评论中看到了这样的说法:
dot(value, vec4(.25))
与以下相比,将是平均四个值的更有效方法:
(x + y + z + w) / 4.0
同样,声称 dot(vec4, vec4) 将在一个周期内运行。
我看到 ARB说点积(DP3 和 DP4)和叉积(XPD是单指令,但这是否意味着它们的计算成本与执行 vec4 加法一样?基本上有一些硬件实现,类似于类固醇上的乘法累加,在这里发挥作用?我可以看到类似的东西在计算机图形学中是如何有用的,但是在一个周期内完成可能是相当多的指令听起来很多。