首页 > 其他 > 详细

opencl(九)----标量、向量数据类型

时间:2019-12-24 16:18:37      阅读:160      评论:0      收藏:0      [点我收藏+]

1、opencl 标量数据类型

bool   
char                                   
unsigned char/uchar
short                              16位有符号整数(补码)
ushort
int                                 32位有符号整数(补码)
uint                                32位无符号
long                                64位有符号
ulong
half                                 16位浮点数
float                                32位浮点数
intptr_t                            有符号整数指针
uintptr_t                           无符号整数指针
ptrdiff_t                            有符号的整数(指针相减)
size_t                               无符号整数(操作符大小)
void

2、向量数据类型

charn
ucharn
shortn
ushortn
intn
uintn
longn
ulongn
floatn

向量宽度:

通过查询设备信息,可以获得首选向量宽度常见的可以取128位(16个字节)等

//使用 clGetDeviceInfo  获取设备支持类型向量长度
cl_uint length;
clGetDeviceIndo(device,CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,sizeof(length),&length,NULL);
// 向量的初始化
float4 f_vec=(float4)(1.1);   // 4个float, 1.1
int4 i_vec=int4(1,2,3,4);

float2 a_vec=(float2)(1.2, 1.4);
float4 b_vec=(float4)(a_vec, 3.1, 0.4);

//读取、修改
char16 msg=(char16)(f,e,i,h,o,p,e,n,c,l,t,e,s,t,r,d);
//数字索引
char temp = msg.s0;
temp=msg.s8;
char temp2 = msg.sC;      //12的十六进制 为 C,相当于 msg.s12
char8=(char8)(msg.s0427,msg.sE4,msg.EC);
// hi  lo  even odd
ushort8 shorts = (ushort8)(0, 10, 20, 30, 40, 50, 60, 70);
ushort4 a = shorts.hi; //索引较高的部分
ushort4 b = shorts.lo; //索引较低的部分
ushort4 c = shorts.even;//偶数索引部分
ushort4 d = shorts.odd;//奇数索引部分

opencl(九)----标量、向量数据类型

原文:https://www.cnblogs.com/feihu-h/p/12091826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!