目录 B8纹理函数… 125 B.8.1 tex1Dfetch() 125 B.8.2 tex1D() 126 B.8.3 tex2D() 126 B.8.4 tex3D() 126 B.8.5 texIDLayered() ,126 B.8.6 tex2DLayered() 127 B.9表面函数(surface) 127 B.9.1 surf1Dread() 127 B.9.2 surf1Dwrite() 127 B.9.3 surf2Dread() 127 B.9.4 surf2Dwrite() 128 B.10时间函数 128 B.11原子函数 128 B.11.1数学函数. . 129 B.11.1.1 atomicAdd() 129 B.11.1.2 atomicSub().. 129 B.11.1.3 atomicExch() 129 B.11.1.4 atomicMin(...... 130 B.11.1.5 atomicMax(). 130 B.11.1.6 atomicInc() 130 B.11.1.7 atomicDec(). 130 B.11.1.8 atomicCAS() 131 B.11.2位逻辑函数 131 B.11.2.1 atomicAnd(). 131 B.11.2.2 atomicOr(). 131 B.11.2.3 atomicXor(). 131 B.12束表决(warp vote)函数 131 B.13取样计数器函数 132 B.14格式化输出.… 132 B.14.1格式化符号 133 B.14.2限制. 133 B.14.3相关的主机端API. .134
目录 B.8 纹理函数 ........................................................................................................... 125 B.8.1 tex1Dfetch()............................................................................................. 125 B.8.2 tex1D()..................................................................................................... 126 B.8.3 tex2D()..................................................................................................... 126 B.8.4 tex3D()..................................................................................................... 126 B.8.5 tex1DLayered()........................................................................................ 126 B.8.6 tex2DLayered()........................................................................................ 127 B.9 表面函数(surface) ............................................................................................. 127 B.9.1 surf1Dread()............................................................................................. 127 B.9.2 surf1Dwrite() ........................................................................................... 127 B.9.3 surf2Dread()............................................................................................. 127 B.9.4 surf2Dwrite() ........................................................................................... 128 B.10 时间函数 ......................................................................................................... 128 B.11 原子函数.......................................................................................................... 128 B.11.1 数学函数............................................................................................... 129 B.11.1.1 atomicAdd() ................................................................................ 129 B.11.1.2 atomicSub()................................................................................. 129 B.11.1.3 atomicExch()............................................................................... 129 B.11.1.4 atomicMin() ................................................................................ 130 B.11.1.5 atomicMax()................................................................................ 130 B.11.1.6 atomicInc().................................................................................. 130 B.11.1.7 atomicDec()................................................................................. 130 B.11.1.8 atomicCAS() ............................................................................... 131 B.11.2 位逻辑函数........................................................................................... 131 B.11.2.1 atomicAnd() ................................................................................ 131 B.11.2.2 atomicOr()................................................................................... 131 B.11.2.3 atomicXor()................................................................................. 131 B.12 束表决(warp vote)函数.............................................................................. 131 B.13 取样计数器函数 ............................................................................................. 132 B.14 格式化输出 ..................................................................................................... 132 B.14.1 格式化符号 .......................................................................................... 133 B.14.2 限制 ...................................................................................................... 133 B.14.3 相关的主机端 API............................................................................... 134
8 B.14.4例程 134 B.15动态全局存储器分配 135 B.15.1堆存储器分配 136 B.15.2与设备存储器API的互操作 136 B.15.3例程 136 B.15.3.1每个线程的分配 136 B.15.3.2每个线程块的分配 137 B.15.3.3在内核启动之间持久的分配 138 B.16执行配置 140 B.17发射绑定 140 B.18 #pragma unroll. 143 附录C数学函数. .145 C.1标准函数 145 C.1.1单精度浮点函数 145 C.1.2双精度浮点函数 148 C.1.3整型函数 150 C.2内置函数 150 C.2.1单精度浮点函数 151 C.2.2双精度浮点函数 152 C.2.3整型函数 153 C.2.4类型转换函数 154 附录DC++语言支持 157 D.1代码例子. 157 D1.1数据类 157 D.1.2派生类 158 D.1.3类模板 158 D.1.4函数模板 159 D.2限制 160 D.2.1限定符 160 D.2.1.1设备存储器限定符 160 D.2.1.2 Volatile限定符 161 D.2.2指针 161 D.2.3运算符 161
8 B.14.4 例程 ...................................................................................................... 134 B.15 动态全局存储器分配 ..................................................................................... 135 B.15.1 堆存储器分配 ...................................................................................... 136 B.15.2 与设备存储器 API 的互操作.............................................................. 136 B.15.3 例程 ...................................................................................................... 136 B.15.3.1 每个线程的分配 ....................................................................... 136 B.15.3.2 每个线程块的分配 ................................................................... 137 B.15.3.3 在内核启动之间持久的分配 ................................................... 138 B.16 执行配置 ......................................................................................................... 140 B.17 发射绑定 ......................................................................................................... 140 B.18 #pragma unroll.................................................................................................. 143 附录 C 数学函数............................................................................................................. 145 C.1 标准函数 ........................................................................................................... 145 C.1.1 单精度浮点函数 .................................................................................... 145 C.1.2 双精度浮点函数 .................................................................................... 148 C.1.3 整型函数 ................................................................................................ 150 C.2 内置函数 ........................................................................................................... 150 C.2.1 单精度浮点函数 .................................................................................... 151 C.2.2 双精度浮点函数 .................................................................................... 152 C.2.3 整型函数 ................................................................................................ 153 C.2.4 类型转换函数 ........................................................................................ 154 附录 D C++语言支持 ...................................................................................................... 157 D.1 代码例子........................................................................................................... 157 D.1.1 数据类.................................................................................................... 157 D.1.2 派生类.................................................................................................... 158 D.1.3 类模板.................................................................................................... 158 D.1.4 函数模板................................................................................................ 159 D.2 限制................................................................................................................... 160 D.2.1 限定符.................................................................................................... 160 D.2.1.1 设备存储器限定符..................................................................... 160 D.2.1.2 Volatile 限定符............................................................................. 161 D.2.2 指针........................................................................................................ 161 D.2.3 运算符.................................................................................................... 161
目录 D.2.3.1赋值运算符 161 D.2.3.2地址运算符 161 D.2.4函数 162 D.2.4.1函数参数 162 D.2.4.2函数内静态变量 162 D.2.4.3函数指针 162 D.2.4.4函数递归 162 D.2.4.5函数定义 162 D2.5类 162 D.2.5.1数据成员 162 D.2.5.2函数成员 162 D.2.5.3构造器和析构器 162 D.2.5.4虚函数 162 D.2.5.5虚基类 163 D.2.6模板 163 附录E纹理获取… .165 E.1最近点取样 165 E.2线性滤波 166 E.3查找表… 167 附录F计算能力… …169 F1特性和技术规范 169 F2浮点标准 171 F.3计算能力1x 172 F.3.1架构 172 F.3.2全局存储器 173 F.3.2.1计算能力1.0和1.1的设备 173 F.3.2.2计算能力1.2和1.3的设备 173 F3.3共享存储器 174 F.3.3.132位步长访问 174 F.3.3.232位广播访问 174 F.3.3.38位和16位访问 175 F.3.3.4大于32位访问 ,175 F4计算能力2.X… .176
目录 D.2.3.1 赋值运算符 ................................................................................. 161 D.2.3.2 地址运算符 ................................................................................. 161 D.2.4 函数 ........................................................................................................ 162 D.2.4.1 函数参数 ..................................................................................... 162 D.2.4.2 函数内静态变量 ......................................................................... 162 D.2.4.3 函数指针 ..................................................................................... 162 D.2.4.4 函数递归 ..................................................................................... 162 D.2.4.5 函数定义 ..................................................................................... 162 D.2.5 类 ............................................................................................................ 162 D.2.5.1 数据成员 ..................................................................................... 162 D.2.5.2 函数成员 ..................................................................................... 162 D.2.5.3 构造器和析构器 ......................................................................... 162 D.2.5.4 虚函数 ......................................................................................... 162 D.2.5.5 虚基类 ......................................................................................... 163 D.2.6 模板 ........................................................................................................ 163 附录 E 纹理获取 ............................................................................................................. 165 E.1 最近点取样........................................................................................................ 165 E.2 线性滤波............................................................................................................ 166 E.3 查找表................................................................................................................ 167 附录 F 计算能力.............................................................................................................. 169 F.1 特性和技术规范 ................................................................................................ 169 F.2 浮点标准 ............................................................................................................ 171 F.3 计算能力 1.x ...................................................................................................... 172 F.3.1 架构 ......................................................................................................... 172 F.3.2 全局存储器 ............................................................................................. 173 F.3.2.1 计算能力 1.0 和 1.1 的设备 ........................................................ 173 F.3.2.2 计算能力 1.2 和 1.3 的设备 ........................................................ 173 F.3.3 共享存储器 ............................................................................................. 174 F.3.3.1 32 位步长访问 .............................................................................. 174 F.3.3.2 32 位广播访问 .............................................................................. 174 F.3.3.3 8 位和 16 位访问 .......................................................................... 175 F.3.3.4 大于 32 位访问 ............................................................................ 175 F.4 计算能力 2.x ...................................................................................................... 176
10 F.4.1架构 176 F.4.2全局存储器 177 F.4.3共享存储器 178 F.4.3.132位步长访问 179 F.4.3.2大于32位访问 179 F4.4常量存储器.1 80
10 F.4.1 架构......................................................................................................... 176 F.4.2 全局存储器............................................................................................. 177 F.4.3 共享存储器............................................................................................. 178 F.4.3.1 32 位步长访问.............................................................................. 179 F.4.3.2 大于 32 位访问............................................................................ 179 F.4.4 常量存储器............................................................................................. 180
第一章导论 第一章导论 1.1从图形处理到通用并行计算 市场对实时、高清晰度的三维图形具有无法满足的需求,由于这种需求的推动, 可编程图形处理器(GPU)己经演化成高并行度,多线程,拥有强大计算能力和极高 存储器带宽的多核处理器,如图11所示: Theoretical GFLOP/s 1750 GeForceGTX 580 NVIDIA GPU Single Precision 1500 NVIDIA GPU Double Precision GeForceGTX 480 Intel CPU Single Precision Intel CPU Double Precision 1250 1000 GeForceGTX 280 750 GeForce8800GTX Tesla C2050 500 GeForce7800 GTX 250 Westmere GeForce6800 Ultra Bloomfield Woodcrest Tesla C1060 GeForceFX 5800 Harpertown Sep-01Penti3 Jun-04 Oct-05 Mar-07 Jul-08 Dec-09
第一章 导论 1 第一章 导论 1.1 从图形处理到通用并行计算 市场对实时、高清晰度的三维图形具有无法满足的需求,由于这种需求的推动, 可编程图形处理器(GPU)已经演化成高并行度,多线程,拥有强大计算能力和极高 存 储 器 带 宽 的 多 核 处 理 器 ,如图 1-1 所 示 :