CUDA帮助文档.doc
文本预览下载声明
NVIDIA CUDA
计算统一设备架构
编程指南
版本 2.0
6 / 7 / 2008
目 录
第 1 章 简介 1
1.1 CUDA:可伸缩并行编程模型 1
1.2 GPU:高度并行化、多线程、多核处理器 1
1.3 文档结构 3
第2章 编程模型 4
2.1 线程层次结构 4
2.2 存储器层次结构 6
2.3 主机和设备 6
2.4 软件栈 7
2.5 计算能力 8
第 3 章 GPU 实现 9
3.1 具有芯片共享存储器的一组 SIMT 多处理器 9
3.2 多个设备 11
3.3 模式切换 11
第 4 章 应用程序编程接口 12
4.1 C 编程语言的扩展 12
4.2 语言扩展 12
4.2.1 函数类型限定符 12
_device_ 12
_global_ 13
_host_ 13
限制 13
4.2.2 变量类型限定符 13
_device_ 13
_constant_ 13
_shared_ 14
限制 14
4.2.3 执行配置 15
4.2.4 内置变量 15
gridDim 15
blockIdx 15
blockDim 15
threadIdx 15
warpSize 16
限制 16
4.2.5 使用 NVCC 进行编译 16
_noinline_ 16
#pragma unroll 16
4.3 通用运行时组件 17
4.3.1 内置向量类型 17
char1、uchar1、char2、uchar2、char3、uchar3、char4、uchar4、short1、ushort1、short2、ushort2、short3、ushort3、short4、ushort4、int1、uint1、int2、uint2、int3、uint3、int4、uint4、long1、ulong1、long2、ulong2、long3、ulong3、long4、ulong4、float1、float2、float3、float4、double2 17
dim3 类型 17
4.3.2 数学函数 17
4.3.3 计时函数 17
4.3.4 纹理类型 18
纹理参考声明 18
运行时纹理参考属性 18
来自线性存储器的纹理与来自 CUDA 数组的纹理 19
4.4 设备运行时组件 19
4.4.1 数学函数 19
4.4.2 同步函数 19
4.4.3 纹理函数 19
来自线性存储器的纹理 19
来自 CUDA 数组的纹理 20
4.4.4 原子函数 20
4.4.5 warp vote 函数 20
4.5 主机运行时组件 21
4.5.1 一般概念 21
设备 21
存储器 22
OpenGL 互操作性 22
Direct3D 互操作性 22
异步并发执行 22
4.5.2 运行时 API 23
初始化 23
设备管理 23
存储器管理 24
流管理 25
事件管理 25
纹理参考管理 25
OpenGL 互操作性 27
Direct3D 互操作性 27
使用设备模拟模式进行调试 28
4.5.3 驱动程序 API 29
初始化 29
设备管理 29
上下文管理 29
模块管理 30
执行控制 30
存储器管理 31
流管理 32
事件管理 32
纹理参考管理 33
0 OpenGL 互操作性 33
1 Direct3D 互操作性 33
第 5 章 性能指南 35
5.1 指令性能 35
5.1.1 指令吞吐量 35
数学指令 35
控制流指令 36
存储器指令 36
同步指令 37
5.1.2 存储器带宽 37
全局存储器 37
本地存储器 43
固定存储器 43
纹理存储器 43
共享存储器 43
寄存器 48
5.2 每个块的线程数量 49
5.3 主机和设备间的数据传输 49
5.4 纹理获取与全局或固定存储器读取的对比 50
5.5 整体性能优化战略 50
第 6 章 矩阵乘法示例 52
6.1 概述 52
6.2 源代码清单 53
6.3 源代码说明 54
6.3.1 Mul() 54
6.3.2 Muld() 54
附录 A 技术规范 56
A.1 一般规范 56
A.1.1 计算能力 1.0 的规范 56
A.1.2 计算能力 1.1 的规范 57
A.1.3 计算能力 1.2 的规范 57
A.1.4 计算能力 1.3 的规范 57
A.2 浮点标准 57
显示全部