CUDA_one

Posted 1532387167llx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

 

未完待续。。。

以上是关于CUDA_one的主要内容,如果未能解决你的问题,请参考以下文章