CUDA学习笔记(二)

编程模型

Posted by 飞白 on May 2, 2017

NVIDIA CUDA TOOLKIT DOCUMENTATION 第三章笔记/翻译

CUDA C包括了一个C语言的扩展以及一个运行时的库,扩展已经在Programming Model一节中展示,其中包括让程序员在kernel中定义C函数并用一些新的语法来声明GridBlock维度。完整的C扩展可以在这里看到。所有的源代码必须使用nvcc编译。

运行时库提供了一系列C函数进行hostdevice的数据内存迁移,内存空间申请,device管理等函数。运行时库建立在底层C API与CUDA driver API之上,同时可以通过程序调取。运行库API通过调取CUDA上下文与CUDA模块提供了更高一层的控制权限,其中CUDA上下文(CUDA Context)是主进程对于kernel进程的抽象,CUDA模块(CUDA Module)是各种动态链接库对于device的抽象。对于大部分程序,这多余的一层控制是不需要的。

Compilation with NVCC