【发布时间】:2012-05-25 23:06:15
【问题描述】:
我遇到过几种情况,声称在 GLSL 中进行点积运算最终会在一个循环中运行。例如:
顶点和片段处理器对四个向量进行操作,在单个周期内执行四分量指令,例如加法、乘法、乘法累加或点积。
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter35.html
我还在某处的 cmets 中看到过这样的声明:
dot(value, vec4(.25))
与以下相比,这将是一种更有效的方法来平均四个值:
(x + y + z + w) / 4.0
再次声明 dot(vec4, vec4) 将在一个周期内运行。
我看到 ARB says that dot product (DP3 and DP4) and cross product (XPD 是单指令,但这是否意味着这些指令的计算成本与执行 vec4 加法一样昂贵?基本上有一些硬件实现,沿着类固醇的乘法累加线,在这里玩吗?我可以看到类似的东西在计算机图形学中是如何有用的,但是在一个周期内完成本身可能是相当多的指令听起来很多。
【问题讨论】: