OpenCL将float16转换为float *

时间:2018-05-07 09:48:27

标签: c++ opencl

目前我正在开发一个内核,可以使用float16类型进行优化。但是,我没有找到任何关于将float16转换为float *的文档,因为我的输出变量是float *。这是示例代码

_kernel void IncrementMatrix( __global float* Source, __global float* Target, __global float* out )
{
   const int globalID = get_global_id(0);
   float16 S = vload16( globalID , Source );
   float16 T = vload16( globalID , Target );
   S = S + T;
   out[globalID*16] = (float*)S; // this is not working    
}

我已经尝试了 out =(float *)S; ,但是它提供了无效的类型转换错误。

1 个答案:

答案 0 :(得分:4)

就像您使用vload16()加载数据一样,使用vstore16来存储它

像这样:

vstore16(S, globalID, out)