CUDA编程

25 年 3 月 24 日 星期一
284 字
2 分钟

CUDA是由NVIDIA开发的GPU编程模型,提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序,主要支持C++,python的语言接口,值得一提的是,CUDA编程是一个异构模型,需要GPU和CPU协同工作,在CUDA中 host指代CPU及其内存,而用device指代GPU及其内存,更重要的是,我们需要host和device之间进行通信,也就是我们非常想解决的数据拷贝问题

CUDA编程模型基础

典型的CUDA程序执行流程如下

  • 分配host内存,并进行数据初始化
  • 分配device内存,并从host把数据拷贝到device上
  • 调用CUDA的和函数在device上完成指定的运算
  • 把device的运算结果考虑到host上
  • 释放device和host上分配的内存

最重要的过程就是调用CUDA的核函数来执行并行计算,kernel是CUDA中一个重要的概念,在device上线程中并行执行的函数,核函数用global声明,从代码层面上如下所示

文章标题:CUDA编程

文章作者:io-wy

文章链接:https://io-wy.github.io/posts/cuda%E7%BC%96%E7%A8%8B[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。