购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第3章
MXMACA编程模型

本章内容

● 硬件平台

● 程序结构

● 内存管理

● 线程管理

● 核函数

● 向量加法示例

本章介绍MXMACA编程模型,它是MXMACA程序员与沐曦GPU硬件之间进行交流的“口头语言”。

MXMACA编程模型提供了沐曦架构GPU的硬件抽象,这为MXMACA应用程序在GPU硬件上的实现提供了可能性。从MXMACA应用程序到沐曦架构GPU硬件的五层逻辑结构如图3-1所示,分别是应用层(MXMACA应用程序)、表示层(MXMACA编程模型)、驱动层(MXMACA编程平台)、系统层(计算机操作系统)和物理层(通用CPU+沐曦GPU硬件)。MXMACA应用程序通过MXMACA编程模型和MXMACA编程平台提供的MXMACA编程API,将应用程序里的业务代码转换为专业的硬件原语和操作系统的编译器或库,来完成程序设计的目标任务。

图3-1 MXMACA编程逻辑分层

利用MXMACA编程模型所编写的MXMACA应用程序,指定了程序各部分应如何共享信息和相互协作。MXMACA编程模型从逻辑上提供了一个特定的异构编程架构,并体现在编程语言和编程环境中。除与其他并行编程模型共有的抽象外,MXMACA编程模型利用沐曦GPU架构的计算能力提供了以下两种特有功能。

● 一种通过层次结构在GPU中组织线程的方法,参见第5章。

● 一种通过层次结构在GPU中访问内存的方法,参见第6章。

从MXMACA程序员的角度来说,可以从以下几个不同层面来看待并行计算。

● 应用层:在算法设计的过程中,应该关心应用层如何解析数据和函数,以便在并行运行环境中正确、高效地解决问题。

● 表示层:进入编程阶段,应从逻辑层面来思考如何组织并行线程,以确保线程和计算能正确地解决问题。MXMACA提出了一个线性层次结构抽象的概念,以允许控制线程行为。

● 硬件层:通过理解在硬件层中线程是如何被映射到核心的,可以帮助提高程序的性能,MXMACA线程模型在不强调较低层级细节的情况下提供了充足的信息。 +N3yliFcp/uHkZ6GGCy/CqWDt16NAx3h7NLzzuOHbTs0EWj3Mfa56YFXvvwqX+0m

点击中间区域
呼出菜单
上一章
目录
下一章
×