**
第七章CUDA编程(二)
**
1.函数的声明
global void KernelFunc():只能从主机端调用,在设备执行,返回值类型必须是空
device float DeviceFunc():在设备和设备间使用
host float HostFunc():在主机端和主机端使用
global 、device :尽量少用递归(不鼓励),不要用静态变量,少用malloc(现在允许但不鼓励),小心通过指针实现的函数调用
2.向量数据类型
char[1-4],uchar[1-4],short[1-4],ushort[1-4],int[1-4],uint[1-4],long[1-4],ulong[1-4],longlong[1-4],ulonglong[1-4],float[1-4],double1,double2
同时适用于主机端和设备段代码,通过函数make_构造,通过.x,.y.z,.w访问
3.数学函数 sqrt.rsqrt,exp.log,sin,cos,tan,sincos等等
Intrinsi function内建函数:仅仅面向设备端,更快,精度降低,以__为前缀,比如__exp
4.线程同步:块内线程可以同步,调用
__syncthreads创建一个barrier栅栏,每个线程在调用点等待块内所有线程执行到这个地方,然后所有线程继续执行后续指令,这是在一个线程块内的,而不是全局的。
要求线程的执行时间尽