OpenCL中的和矢量分量(类似SSE)

时间:2012-05-30 06:59:13

标签: opencl

是否只有一条指令来计算float4的所有组件的总和,例如,在OpenCL中?

float4 v;
float desiredResult = v.x + v.y + v.z + v.w;

1 个答案:

答案 0 :(得分:6)

float4 v;
float desiredResult = dot(v, (float4)(1.0f, 1.0f, 1.0f, 1.0f));

这是一个更多的工作,因为你在添加它们之前将每个组件乘以一个,但是一些GPU内置了一个点积指令。所以可能更快;可能会慢一些。这取决于你的硬件。