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