3

float4たとえば、OpenCLで a のすべてのコンポーネントの合計を計算する単一の命令はありますか?

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

1 に答える 1

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

各コンポーネントを加算する前に 1 を乗算しているため、もう少し手間がかかりますが、一部の GPU には内積命令が組み込まれています。したがって、より高速になる可能性があります。遅いかもしれません。ハードウェアによって異なります。

于 2012-05-30T13:23:26.690 に答える