opencl(九)----標量、向量數據類型


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;//奇數索引部分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM