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

Jak*_* S. 3 opencl

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

float4 v;
float desiredResult = v.x + v.y + v.z + v.w;
Run Code Online (Sandbox Code Playgroud)

Pau*_*l S 6

float4 v;
float desiredResult = dot(v, (float4)(1.0f, 1.0f, 1.0f, 1.0f));
Run Code Online (Sandbox Code Playgroud)

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