我有一个double4变量,我想将其转换为双数组。由于double4是4个双打的向量,我们有没有办法从double4中提取这些双打?同样在最基本的层面上,所有数据类型都可以分解为字节,那么有没有一种方法可以将double4作为字节准备好然后转换为double?
答案 0 :(得分:1)
您只需要vstoren()
。这里有DOC和一个用法示例:
__kernel mykern (...){
...
private double data[8]; //vstore works for private/local/global memory types
private double4 vec = (double4)(0.0, 1.0, 2.0, 3.0);
vstore4(vec, 0, data); //Will write the first 4 doubles of data with vec information
vstore4(vec, 4, data); //Will write the last 4 doubles of data with vec information
...
}
答案 1 :(得分:0)
是的,你可以做,矢量数据类型的组件(有1到4个组件)可以解决为.xyzw
double4 vecArray;
....
....
double extractedVecArray[4];
extractedVecArray[0] = vecArray.w;
extractedVecArray[1] = vecArray.x;
extractedVecArray[2] = vecArray.y;
extractedVecArray[3] = vecArray.z;
我没有测试过上面的代码,但它应该可行。