刚写的函数和变量的限定符csdn既然没有给我保存,郁闷~~
接着看 执行配置
在调用一个__global__函数的时候需要指定执行配置:<<< Dg, Db, Ns, S >>>
Dg:grid的大小和维度,为dim3类型。Dg.x * Dg.y是grid的大小。
Db:block的维度和大小,为dim3类型。Db.x * Db.y * Db.z 是Block的大小。
Ns:size_t类型的,为一个函数的动态shared内存。
内建变量:
gridDim:dim3类型的,包含grid的维度
blockIdx:uint3类型的,block在grid的位置
blockDim:dim3类型,包含block的维度
threadIdx:uint3类型的,Thread在block中的位置
warpSize:int类型,线程中的warp大小.?warp在CUDA中是什么概念呢?
?warp的概念:
今天在讨论过程中,向liuli师兄请教这个warp。听他讲后,我对warp是这样理解的:
warp是GPU的processor中线程并行的一个单位。在Nvidia中是16个线程为 一个warp。每次执行的时候,这16个线程同时平行执行。每个线程对于share内存的访问对应一个bank。
依然不明白block中不是允许有256个线程嘛,这256个线程难道不是平行运行吗?