###前 言
欢迎来到用CUDA C进行异构并行编程的奇妙世界!
现代的异构系统正朝一个充满无限计算可能性的未来发展。异构计算正在不断被应用到新的计算领域—从科学到数据库,再到机器学习的方方面面。编程的未来将是异构并行编程的天下!
本书将引领你通过使用CUDA平台、CUDA工具包和CUDA C语言快速上手GPU(图形处理单元)计算。本书中设置的范例与练习也将带你快速了解CUDA的专业知识,助你早日达到专业水平!
[第1章 基于CUDA的异构并行计算1.1 并行计算](https://yq.aliyun.com/articles/118145/)1.1.1 串行编程和并行编程1.1.2 并行性1.1.3 计算机架构1.2 异构计算1.2.1 异构架构1.2.2 异构计算范例1.2.3 CUDA:一种异构计算平台1.3 用GPU输出Hello World1.4 使用CUDA C编程难吗1.5 总结1.6 习题[第2章 CUDA编程模型2.1 CUDA编程模型概述](https://yq.aliyun.com/articles/118205/)2.1.1 CUDA编程结构2.1.2 内存管理2.1.3 线程管理2.1.4 启动一个CUDA核函数2.1.5 编写核函数2.1.6 验证核函数2.1.7 处理错误2.1.8 编译和执行2.2 给核函数计时2.2.1 用CPU计时器计时2.2.2 用nvprof工具计时2.3 组织并行线程2.3.1 使用块和线程建立矩阵索引2.3.2 使用二维网格和二维块对矩阵求和2.3.3 使用一维网格和一维块对矩阵求和2.3.4 使用二维网格和一维块对矩阵求和2.4 设备管理2.4.1 使用运行时API查询GPU信息2.4.2 确定最优GPU2.4.3 使用nvidia-smi查询GPU信息2.4.4 在运行时设置设备2.5 总结2.6 习题[第3章 CUDA执行模型3.1 CUDA执行模型概述](https://yq.aliyun.com/articles/118270/)3.1.1 GPU架构概述3.1.2 Fermi架构3.1.3 Kepler架构3.1.4 配置文件驱动优化3.2 理解线程束执行的本质3.2.1 线程束和线程块3.2.2 线程束分化3.2.3 资源分配3.2.4 延迟隐藏3.2.5 占用率3.2.6 同步3.2.7 可扩展性3.3 并行性的表现3.3.1 用nvprof检测活跃的线程束3.3.2 用nvprof检测内存操作3.3.3 增大并行性3.4 避免分支分化3.4.1 并行归约问题3.4.2 并行归约中的分化3.4.3 改善并行归约的分化3.4.4 交错配对的归约3.5 展开循环3.5.1 展开的归约3.5.2 展开线程的归约3.5.3 完全展开的归约3.5.4 模板函数的归约3.6 动态并行3.6.1 嵌套执行3.6.2 在GPU上嵌套Hello World3.6.3 嵌套归约3.7 总结3.8 习题
相关资源:CUDA编程,指南pdf