本文本来自OpenCL实践
其一,一种给定类型的向量只能包含特定数量的元素;其二,当对向量操作时,所有的元素的操作都必须同时进行。
例如:
你相对四组浮点数进行求和运算。具体而言,a和b都是由四个float型数所组成的数组,你想将a和b中对应项的求和结果保存到数组c中,下面的代码就是一种解决办法:
float a[4], b[4], c[4];
for (int i=0; i<4; i++) {
c[i]=a[i]+b[i];
}
但如果现在假设a, b, c 是三个向量,各个向量包含四个float型数。那么你的求和运算代码就可以修改为:
float4 a, b, c ;
c=a+b;
注意:向量中的元素通常称为 向量分量 (component)