码迷,mamicode.com
首页 > 其他好文 > 详细

OpenCL——把vector变成scalar

时间:2019-04-26 00:38:56      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:tor   char   http   内置函数   type   vat   strong   处理   pre   

https://stackoverflow.com/questions/46556471/how-may-i-convert-cast-scalar-to-vector-and-vice-versa-in-opencl

三种方法:

  • 使用union。这个也是OCL标准的6.2.4.1节中容许的方法。
union my_type
{
  char scalar[16];
  char16 vector;
};

优点:数据是明确对齐的,也即不会出现向量vector的内存长度和变成的多个标量的内存长度不一致的情况。
缺点:不好处理标量数组的长度变化的情况。所以,这种方法一般用在local或者private内存中,因为这些一般是固定长度的。

  • 在向量和标量之间进行指针转换
char16 vec = (char16)(1, 2, 3, …);
char* scalar = (char*)&vec;

优点:方便
缺点:容易因为地址位置搞错而出错。

  • 使用内置函数as_typen或者as_type,这个最为推荐

OpenCL——把vector变成scalar

标签:tor   char   http   内置函数   type   vat   strong   处理   pre   

原文地址:https://www.cnblogs.com/willhua/p/10732076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!