2. 简介¶
本文档的目标读者是所有使用GCU芯片进行编程的开发者。
GCU芯片是一种利用并行计算的特性大幅提升算力的异构计算设备。GCU利用了并行计算的特性,在硬件架构和编程模型层面都支持开发者表达非常大的并行度。因此,相对于传统的CPU而言,GCU芯片拥有更高的指令吞吐和内存访问带宽,可以更快的帮助开发者完成并行计算任务。
2.1. TopsRider® :加速计算平台及编程模型¶
TopsRider®是针对GCU芯片设计的加速计算平台,其中包含了编译器、链接器、运行时库、调试器、性能分析工具等一系列编程工具链。TopsRider®加速计算平台在下文中简称为TOPS。
TOPS编程模型是针对GCU芯片设计的异构并行计算编程模型,其中主要包含了三部分的抽象:
执行模型:针对异构计算系统中传输、控制、协作进行抽象,描述了主机端程序如何和设备之间进行数据传输、如何在设备上启动计算核函数、如何控制传输和计算在设备端并行。
线程模型:针对并行计算任务在硬件上的映射方式进行抽象,描述了多线程之间的分组关系,以及在线程组内的资源共享、协同和同步方式。
内存模型:针对数据在硬件上的存储、传输、共享进行抽象,描述了不同层次、不同功能的内存结构。
TOPS C++基于标准C++语言进行了扩展,从而使得开发者可以在GCU芯片上进行高级语言编程。TOPS C++主要扩展了向量计算和矩阵计算的功能,开发者使用相关接口进行计算才可以获得GCU芯片的计算加速效果。异构并行计算编程需要开发者拥有对底层软硬件深入的理解,才能真正发挥出硬件的所有能力。TOPS C++希望通过在高级语言层面的封装,大幅降低开发者的开发和调优难度,且只会少许降低性能天花板。
2.2. 文档结构¶
简介 (Introduction) 针对TOPS加速计算平台及编程模型做简要介绍
硬件架构 (Hardware Architecture) 介绍了GCU硬件架构和参数
执行模型 (Execution Model) 介绍了在CPU+GCU组成的异构系统中如何利用GCU进行计算
线程模型 (Thread Model) 介绍了如何将并行计算中的并行度映射到GCU中的计算核心上
内存模型 (Memory Model) 介绍了TOPS编程模型抽象的内存层次结构,以及数据存储、传输、共享方式
编程接口 (Programming Interface) 介绍了如何在CPU端对GCU进行控制和编程
C++语言扩展 (C++ Language Extension) 介绍了TOPS编程模型针对C++语言的扩展功能
C++语言支持 (C++ Language Support) 介绍了当前已经支持的C++语言特性
兼容性 (Compability) 介绍了GCU210到GCU300的功能兼容性