1.8 ORGANIZATION OF THE BOOK

2024-01-07 07:12
文章标签 1.8 book organization

本文主要是介绍1.8 ORGANIZATION OF THE BOOK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于1.8 ORGANIZATION OF THE BOOK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/579128

相关文章

【SGU】271. Book Pile(双端队列模拟)

一摞书,2个操作,一个操作是在书堆上加一本,第二个将前K个书翻转 看别人用Splay树做的,但是可以用双端队列模拟,因为K个书之后的书位置已经定下来了,所以只需要记录在队列头加书还是尾加书 #include<cstdio>#include<string>#include<algorithm>#include<queue>#include<stack>#include<cstrin

JAVA 1.8 十大新特性详解

本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and people are starting to figure that out.” 本教程将用带注释的

Mac book 系统清理

重置 PRAM/NVRAM command+option  + P + R 您的电脑中很小的一部分内存,被称为“参数随机存取存储器”或 PRAM,它将某些设置储存在 Mac OS X 可以快速访问的位置。储存的特定设置取决于您的 Mac 类型以及连接在 Mac 上的设备的类型。这些设置包括您指定的启动磁盘、显示器分辨率、扬声器音量和其他信息。 详细步骤: 关闭电脑。在键盘上找到以下键:Co

【STM32项目设计】STM32F411健康助手--硬件SPI (硬件NSS/CS)驱动st7735--1.8寸TFT显示屏(1)

#include "lcd_driver.h"static uint16_t SPI_TIMEOUT_UserCallback(uint8_t errorCode);//液晶IO初始化配置void LCD_Driver_Init(void){SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使

java: javacTask: 源发行版 8 需要目标发行版 1.8

idea同一工作空间中不同工程使用不同的jkd版本。在本地idea同时使用jdk1.7和jdk1.8,不同的java工程使用不同的jdk版本,但是在java代码编译时报错,其报错信息为:【java: javacTask: 源发行版 8 需要目标发行版 1.8  java: Compilation failed: internal java compiler error】。导致此报错明确是因为

Quartz 1.8.6

了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述: ●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下

AWTK 1.8 发布

1.8 版本更新 1. 细节完善 大量细节完善请参考 最新动态 2. 新增文档 拖入文件事件如何使用 packed image如何自定义资源加载方式如何使用 CMake 构建 AWTK 应用如何将资源编译到应用程序并使用它们关于自定义控件的 offset 的使用注意事项 3. 新增重要特性 使用 svgtiny 解析 svg,增加渐变等功能。完善 log 系统,支持调试器拦截

《Computer Organization and Design》Chap.6 笔记

原本昨天应该看完的Chap.6,没想到大晚上居然停电了。Chap.6主要是介绍parallel processors,内容不深。 提要: SISD, MIMD, SIMD, SPMD和vector的原理。硬件多线程技术。多核&多处理器,多处理器网络拓扑。 (待再看) 6.10&6.11待看。 内容: SISD, MIMD,SIMD的中文解释(引用百度百科)—— SISD(Single

《Computer Organization and Design》Chap.5 笔记

Memory Hierarchy 这章读起来较困难,需要多次学习!!! 提要: cache的基本原理,如何读写?如何处理miss?virtual memory,其原理与cache有类似的地方。 5.3&5.4重看,5.5-5.10&5.13-5.17待看! 内容: Two different types of locality: temporal locality & spatial loc

《Computer Organization and Design》Chap.4 笔记

摘要: 怎样建立datapath?需要哪些elements?如何连接这些elements?怎样控制datapath?8bits的control linel包含了哪些signals?pipeline!其他提高性能的方法,如并行、循环展开。 4.7-4.9、4.11待看。 内容: elements盘点—— 1.Instruction memory——a memory unit to store