CUDA_one

首先我看了讲解CUDA基础部分以后,大致对CUDA的基本了解如下:

第一:CUDA实行并行化的过程分为两部分,一个是线程块之间的并行(这是在每个线程网格中grid进行的),一个是对于每一个线程块内部各线程之间的并行化(每个block内部);

第二:CUDA程序编写的流程:

分为主机端的程序(CPU)与设备端的程序(GPU)

主机端:

初始化GPU→数据准备工作→为输入输出参数分配显存空间→将输入参数从主机端复制到显存→内核启动设置→将输出参数复制到显存空间→释放在设备端分配的显存空间

数据准备工作:这里的数据指的是待放入GPU上执行的计算任务

在显存中可以分配的空间有两种:线性存储器和CUDA数组

将输入参数从主机端复制到显存:执行cudaMemcpyHostToDevice

将输出参数复制到显存空间:执行cudaMemcpyDeviceToHost

内核启动设置:调用内核函数kernelFunc<<<N,M>>>(d_a,d_b,d_c)     N表示执行一个grid中有多少个并行block块,M表示执行一个block中有多少个并行线程(thread)

未完待续。。。

猜你喜欢

转载自www.cnblogs.com/1532387167llx/p/11029335.html
one