1.8 ORGANIZATION OF THE BOOK

本文详细介绍了CUDA编程及其在数据并行计算中的应用,包括CUDAC编程模型、内存管理和性能优化,以及各种并行计算模式。通过实例和案例研究,展示了如何将理论应用于实际项目,探讨了异构计算和未来发展趋势。
部署运行你感兴趣的模型镜像

第2章,数据并行计算,介绍数据并行性和CUDA C编程。本章希望读者以前有过C编程的经验。它首先介绍了CUDA C作为C的简单、小型扩展,支持异构CPU/GPU联合计算和广泛使用的单程序多数据(SPMD)并行编程模型。然后,它涵盖了涉及的思维过程:(1)识别要并行化的应用程序部分,(2)隔离并行化代码使用的数据,使用APl函数在并行计算设备上分配内存,(3)使用APl函数将数据传输到并行计算设备,(4)开发将由并行化部分线程执行的内核函数,(5)启动并行线程执行的内核函数,以及(6)最终通过APl函数调用将数据传输回主机处理器。

虽然第2章数据并行计算的目标是教授足够的CUDA C编程模型概念,以便学生可以编写一个简单的并行CUDA C程序,但它实际上涵盖了基于任何并行编程模型开发并行应用程序所需的几种基本技能。我们使用矢量加法的运行示例来说明这些概念。在书的后半部分,我们还将CUDA与其他并行编程模型进行比较,包括OpenMP、OpenACC和OpenCL。

第3章,可扩展的并行执行,介绍了CUDA并行执行模型的更多细节。它对线程的创建、组织、资源绑定、数据绑定和调度提供了足够的洞察力,使读者能够使用CUDA C实现复杂的计算,并说明其CUDA代码的性能行为。

第4章,内存和数据局部性,专门用于用于保存CUDA变量的特殊内存,以管理数据交付和提高progqram执行速度。我们介绍了分配和使用这些记忆的CUDA语言功能。适当使用这些存储器可以大大提高数据访问吞吐量,并有助于缓解内存系统中的交通拥堵。

第5章,性能考虑,提出了当前CUDA硬件中几个重要的性能考虑因素。特别是,它提供了线程执行、内存数据访问和资源分配的理想模式的更多详细信息。这些细节构成了程序员推理其决策在组织计算和数据方面的后果的概念基础。

第6章,数值考虑,介绍了1EEE-754浮点数格式、精度和准确性的概念。它说明了为什么不同的并行执行安排会导致不同的输出值。它还教授数值稳定性的概念以及在并行算法中保持数值稳定性的实用技术。

第7章,并行模式:卷积,第8章,并行模式:前缀和,第9章,并行模式-并行直方图计算,第10章,并行模式:稀疏矩阵计算,第11章,并行模式:合并排序,第12章,并行模式:图形搜索,提出了六个重要的并行计算模式,让读者更深入地了解并行编程技术和并行执行机制。第7章,并行模式:卷积,呈现卷积和模板,经常使用的并行计算模式,需要仔细管理数据访问位置。我们还使用这种模式在现代GPU中引入恒定内存和缓存。第8章,并行模式:前缀和,呈现还原树和前缀和,或扫描,一种重要的并行计算模式,可将顺序计算转换为并行计算。我们还使用这种模式在并行算法中引入工作效率的概念。第9章,并行模式——平行直方图计算,涵盖了直方图,这是一种广泛用于大型数据集模式识别的模式。我们还涵盖了合并操作,这是划分和合并工作分区策略中广泛使用的模式。第10章,并行模式:稀疏矩阵计算,呈现稀疏矩阵计算,一种用于处理非常大的数据集的模式。本章向读者介绍重新排列数据以进行更高效的并行访问的概念:数据压缩、填充、排序、换位和正则化。第11章,并行模式:合并排序,介绍合并排序,以及动态输入数据识别和组织。第12章,并行模式:gqraph搜索,介绍了gqraph算法以及如何在GPU编程中有效实现图形搜索。

虽然这些章节基于CUDA,但它们有助于读者为一般的并行编程奠定基础。我们相信,当人类从具体例子中学习时,他们最能理解。也就是说,我们必须首先在特定编程模型的背景下学习这些概念,这为我们提供了坚实的基础,可以将我们的知识应用于其他编程模型。当我们这样做时,我们可以从CUDA模型中汲取我们的具体经验。对CUDA模型的深入体验也使我们能够获得成熟,这将有助于我们学习甚至可能与CUDA模型无关的概念。

第13章,CUDA动态并行性,涵盖了动态并行性。这是GPU根据数据或程序结构为自己动态创建工作的能力,而不是等待CPU专门启动内核。

第14章,应用案例研究-非笛卡尔核磁共振,第15章,应用案例研究-分子可视化和分析,第16章,应用案例研究-机器学习,是三个真实应用的案例研究,它带领读者完成并行和优化其应用以显著加速的思维过程。对于每个应用程序,我们首先确定制定并行执行基本结构的替代方法,并跟进每个选项的优缺点。然后,我们完成实现高性能所需的代码转换步骤。这三章帮助读者将前几章的所有材料放在一起,并为自己的应用程序开发项目做准备。第14章,应用案例研究-非笛卡尔MRL,涵盖非笛卡尔MRl重建,以及不规则数据如何影响程序。第15章,应用案例研究-分子可视化和分析,涵盖分子可视化和分析。第16章,应用程序案例研究——机器学习,涵盖了深度学习,这正在成为GPU计算的一个极其重要的领域。我们提供介绍,并将更深入的讨论留给其他来源。

第17章,并行编程和计算思维,介绍了计算思维。它通过涵盖组织程序计算任务的概念来做到这一点,以便它们可以并行完成。我们首先讨论将抽象科学概念组织为计算任务的转化过程,这是生产高质量应用软件(串行或并行)的重要第一步。然后,它讨论了并行算法结构及其对应用程序性能的影响,这基于CUDA的性能调优体验。虽然我们没有进入这些替代的并行编程风格,但我们期望读者能够用他们在这本书中获得的基础来学习其中任何一种编程。我们还提出了一个高水平的案例研究,以展示可以通过创造性计算思维看到的机会。

第18章,对异构计算集群进行编程,涵盖了异构集群上的CUDA编程,其中每个计算节点由CPU和GPU组成。我们讨论了将MPl与CUDA一起使用来集成节点间计算和节点内计算,以及由此产生的通信问题和实践。

第19章,使用OpenACC的并行编程涵盖了使用OpenACC的并行编程。OpenACC是一种基于指令的高级编程方法,允许程序员识别和指定随后可以由编译器和/或其他工具并行化的代码区域。OpenACC是并行程序员入门的简单方法。

第20章,关于CUDA和GPU计算的更多信息,第21章,结论和展望,提供了总结性发言和大规模并行编程的未来展望。我们第一次重温我们的目标,并总结这些章节如何结合在一起,以帮助实现目标。然后,我们简要调查了大规模并行处理器架构的主要趋势,以及这些趋势在未来可能会如何影响并行编程。最后,我们预测大规模并行计算的这些快速进步将使其成为未来十年最令人兴奋的领域之一。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值