序
前言
第0章 引言
第1章 CUDA使用初步
1.1 GPU介绍
1.2 CUDA介绍
1.2.1 CUDA特性
1.2.2 CUDA编程模型
1.2.3 CUDA语法简单介绍
1.3 CUDA安装和使用
1.3.1 安装
1.3.2 配置
1.3.3 编译
1.3.4 执行
1.4 第一个CUDA程序——矩阵相加
1.4.1 CPU计算
1.4.2 改编成CUDA算法
1.4.3 CUDA程序代码matrixAdd.cn详细解释
1.5 调试和优化
1.5.1.调试查错
1.5.2 性能优化
第2章 基于CUDA的CT图像重建
2.1 CT介绍
2.2 CT扫描及重建原理
2.2.1 投影
2.2.2 傅里叶切片定理
2.2.3 滤波反投影(FBP)重建算法
2.3 FBP图像重建算法的CUDA实现
2.3.1 单GPU重建
2.3.2 多GPU重建
2.3.3 结果及性能
2.3.4 优化
2.3.5 重建图像的显示
2.4 总结
第3章 分子动力学模拟的GPU并行实现
3.1 建立适合GPU计算的分子动力学模拟算法
3.1.1 分子动力学模拟简介
3.1.2 单个GPU上的算法
3.1.3 多个GPU并行算法
3.1.4 多相分子动力学的GPU算法
3.2 GPU-MD算法的应用
3.2.1 单相流动——方腔流
3.2.2 多相流动
3.3 GPU性能发挥
第4章 基于GPU的原子间多体作用计算及其在材料领域的应用
4.1 材料计算领域的原子间多体相互作用模型
4.1.1 对势
4.1.2 多体相互作用势
4.2 模拟算法
4.2.1 原子初始生成与布置
4.2.2 时间步长积分方法
4.2.3 邻近粒子搜索算法
4.2.4 边界条件
4.2.5 对系统的控制方法
4.2.6 统计分析结果的提取
4.2.7 CPU上的算法
4.2.8 单GPU算法
4.2.9 多GPU并行计算算法
4.3 实例应用
4.3.1 单GPU计算实例
4.3.2 多GPU并行计算实例
4.4 性能分析
4.4.1 单GPU不同算法的比较
4.4.2 多GPU并行计算
4.5 一些GPU程序开发调试经验
第5章 长链分子分子动力学模拟的GPU实现
5.1 长链分子分子动力学模拟的常用模型和算法
5.2 算法的GPU实现
5.2.1 粒子信息的存储
5.2.2 邻居列表的建立
5.2.3 非成键力的计算
5.2.4 成键力的计算
5.2.5 迭代算法的选择
5.3 模拟体系和GPU程序性能
5.3.1 非成键力的计算
5.3.2 成键力的计算
5.3.3 迭代算法和网格的更新
第6章 颗粒流体系统宏观粒子模拟的GPU实现
6.1 宏观粒子方法(MaPM)
6.2 MaPM的算法实现
6.2.1 颗粒流体系统MaPM模拟在CPU上的单机实现
6.2.2 CPU上的并行实现
6.2.3 GPU上的单机实现
6.2.4 GPU上的并行实现
6.3 并行程序性能分析
6.4 体会与展望
第7章 基于GPU的格子玻尔兹曼方法计算
7.1 格子玻尔兹曼方法
7.1.1 LBM方法简介
7.1.2 LBM方法理论基础
7.2 格子玻尔兹曼方法在GPU上的实现
7.2.1 单GPU的LBM计算
7.2.2 多GPU的LBM计算
7.3 LBM在GPU上的计算实例及结果分析
7.3.1 LBM模拟多孔介质流动
7.3.2 GPU上LBM计算的性能分析
7.4 结语
第8章 其他非CPU编程
8.1 流计算平台的基本结构
8.1.1 流计算平台的硬件
8.1.2 流计算平台的软件
8.2 Brook+编程
8.2.1 Brook+程序的编译过程
8.2.2 Brook+程序的结构
8.2.3 Brook+中的数据类型
8.2.4 流和流操作
8.2.5 内核
8.2.6 注意事项
8.3 欧拉粒子体系模拟
8.3.1 CPU代码
8.3.2 GPU代码
结束语
参考文献
附录
附录A CUDAprofiler的使用与配置
附录B 符号说明