OpenCL学习笔记(12)--内核编程:运算符和函数

1.OpenCL的内建函数:不需要另外的链接库文件,或者是包含特别的头文件。可用的内建函数分为7类:
(1)工作项和工作组函数–用来表示数据的维度,决定工作组的成员(participation),获取工作项和工作组的ID;
(2)数据传输函数–用于在内存区域间加载和保存数据;
(3)浮点函数–用于算数运算、取舍、比较、求幂或是求对数运算,三角函数运算以及其他的运算操作;
(4)整数运算函数–整型向量间算术运算和比较;
(5)混洗和选择函数–用来创建位向量或其他类型的向量;
(6)向量测试/比较函数–用来测试和比较向量内的分量;
(7)几何函数–用于求点积、叉积、长度和归一化处理。

2.对应不同类型的参数,同一个函数一般会有不同的实现。例如,min和max函数的第二个参数可以是float型向量或float型标量。此外,很多函数都接受指向内存的指针做参数,但只能是指向特定内存空间的指针。例如,vloadn函数可以将数据保存在全局内存、局部内存或是私有内存中,但不能将数据保存在常数内存中。

3.为了尽量避免繁复地列出一个函数的所有实现,会采用以下命名规则来表示一个函数的不同用法。
(1)type/n–斜线表示的是参数可以是标量类型type,或向量类型typen,其中n可以是2,3,4,8和16;
(2)__(g|c|l|p)–这分别表示的是指向内存是去哪句内存(g),常数内存(c),局部内存(l),或私有内存;
(3)all–这表示参数可以是任意标量或向量类型;
(4)integer–这表示参数可以是任意整数类型:uchar,char,ushort,short,uint,int,long,和long;
(5)uinteger–这表示参数可以是任意无符号整型:uchar,ushort,uint,int和ulong。

发布了19 篇原创文章 · 获赞 20 · 访问量 565

猜你喜欢

转载自blog.csdn.net/INFINALGEORGE/article/details/105193988