GPU并行计算与CUDA编程
文章目录
1、并行计算编程
结构图
左图:编程的模型。右图是硬件的模型。
CUDA编程的优点与后果
每一个线程块运算的时间不同。需要加以控制。需要考虑当一个线程计算完,调用另一个线程未计算完的情况。
CUDA编程模型的原则
内存模型
CPU调用GPU,将主存上的数据复制到GPU显存,再进行读取运算。
同步性synchronisation和屏蔽barrier
barrier的作用起到阻隔的作用,只有当所有线程都到达时,释放所有线程。
CUDA编程模型
对于线程块(Thread Block)来说,需要设置同步机制,防止线程之间的不等待导致出错。需要开放者设计运行逻辑
对于KernelA、KernelB,只有执行完毕KernelA才能执行KernelB,这是系统层面的控制。
2、GPU硬件模式
线程块
一组线程块用于解决一个kernal核(函数)
GPU
GPU的主要工作把线程块分配到SM流处理器。
GPU实际上是处理他们之间的关系。
总结: GPU把kernel(也就是函数)的线程块分配到SM上进行处理,SM用于处理线程。