2. 简介

本文档的目标读者是所有使用GCU芯片进行编程的开发者。

GCU芯片是一种利用并行计算的特性大幅提升算力的异构计算设备。GCU利用了并行计算的特性,在硬件架构和编程模型层面都支持开发者表达非常大的并行度。因此,相对于传统的CPU而言,GCU芯片拥有更高的指令吞吐和内存访问带宽,可以更快的帮助开发者完成并行计算任务。

2.1. TopsRider® :加速计算平台及编程模型

TopsRider®是针对GCU芯片设计的加速计算平台,其中包含了编译器、链接器、运行时库、调试器、性能分析工具等一系列编程工具链。TopsRider®加速计算平台在下文中简称为TOPS。

TOPS加速计算平台

图 2.1.1 TOPS加速计算平台

TOPS编程模型是针对GCU芯片设计的异构并行计算编程模型,其中主要包含了三部分的抽象:

  1. 执行模型:针对异构计算系统中传输、控制、协作进行抽象,描述了主机端程序如何和设备之间进行数据传输、如何在设备上启动计算核函数、如何控制传输和计算在设备端并行。

  2. 线程模型:针对并行计算任务在硬件上的映射方式进行抽象,描述了多线程之间的分组关系,以及在线程组内的资源共享、协同和同步方式。

  3. 内存模型:针对数据在硬件上的存储、传输、共享进行抽象,描述了不同层次、不同功能的内存结构。

TOPS C++基于标准C++语言进行了扩展,从而使得开发者可以在GCU芯片上进行高级语言编程。TOPS C++主要扩展了向量计算和矩阵计算的功能,开发者使用相关接口进行计算才可以获得GCU芯片的计算加速效果。异构并行计算编程需要开发者拥有对底层软硬件深入的理解,才能真正发挥出硬件的所有能力。TOPS C++希望通过在高级语言层面的封装,大幅降低开发者的开发和调优难度,且只会少许降低性能天花板。

2.2. 文档结构

  • 简介 针对针对TOPS加速计算平台及编程模型做简要介绍

  • 硬件架构 介绍了GCU硬件架构和参数

  • 执行模型 介绍了在CPU+GCU组成的异构系统中如何利用GCU进行计算

  • 线程模型 介绍了如何将并行计算中的并行度映射到GCU中的计算核心上

  • 内存模型 介绍了TOPS编程模型抽象的内存层次结构,以及数据存储、传输、共享方式

  • 编程接口 介绍了如何在CPU端对GCU进行控制和编程

  • C++语言扩展 介绍了TOPS编程模型针对C++语言的扩展功能

  • C++语言支持 介绍了当前已经支持的C++语言特性

  • 兼容性 介绍了GCU210到GCU300的功能兼容性