1. 简介¶
驭算TopsRider软件栈是燧原科技自主知识产权的计算及编程平台,通过软硬件协同架构设计,充分释放邃思GCU芯片性能。
2. 版本历史¶
V1.0 |
2023年1月12日 |
基于TopsRider2.2软件栈组件功能、各平台介绍文档进行写作和修订 |
V2.0: |
2024年6月28日 |
基于TopsRider3.1软件栈组件功能、各平台介绍文档进行写作和修订 |
3. 词汇表¶
GCU |
General Compute Unit, 燧原科技通用计算单元 |
TopsRider |
燧原科技驭算软件栈 |
Enflame Driver |
燧原科技GCU驱动程序 |
EFSMI |
燧原科技GCU设备管理界面 |
TopsRuntime |
燧原科技运行时库 |
TopsCodec |
燧原科技GCU编解码运行时接口 |
TopsCC |
燧原科技异构计算编译器 |
TopsKit |
燧原科技开发者工具包 |
TopsProf |
燧原科技查看GCU和CPU活动的命令行性能分析工具 |
TopsVisualProfiler |
燧原科技查看GCU和CPU活动的可视化性能分析工具 |
TopsPTI |
燧原科技高级自定义性能分析接口 |
TopsGDB |
燧原科技异构编程调试器 |
TopsTX |
燧原科技记录GCU程序调用过程上下文信息的工具 |
TopsGraph |
燧原科技计算图AI编译器 |
TopsATen |
燧原科技对齐Pytorch Aten语义的预编译计算库 |
TopsCV |
燧原科技图像处理工具 |
FFmpeg-GCU |
燧原科技视频编解码工具 |
ECCL |
燧原科技集合通信库 |
TopsInference |
燧原科技推理加速框架 |
TopsCompressor |
燧原科技模型压缩工具 |
TopsIDEAS |
燧原科技模型推理调试工具 |
TopsModelGraph |
燧原科技模型可视化开发调试工具 |
TopsAIserver |
燧原科技服务化推理部署工具 |
EGC |
Enflame GCU Container,燧原科技官方容器镜像库 |
TopsCloud |
燧原科技GCU Kubernetes集群部署运维工具套件 |
TopsStation |
燧原科技端到端应用开发部署与管理运维平台套件 |
LumiCanvas |
燧原科技支持文生图文生视频业务的应用工具 |
LumiVerse |
燧原科技支持文生文业务的应用工具 |
4. 软件栈简介¶
驭算TopsRider软件栈是燧原科技自主知识产权的计算及编程平台,通过软硬件协同架构设计,充分释放邃思GCU芯片性能。
目前软件栈已全面支持燧原第三代推理芯片Enflame S60。完整推出界面更加友好的GCU异构计算编译器TopsCC和开发工具链。持续扩大预编译算子语义覆盖面,增强泛化能力。自上而下对接方兴未艾的AIGC技术生态,大量适配Huggingface社区、支持热门的LLM开源推理框架及服务,在算法、量化混精、存储、分布式通信、推理服务等多环节采用高效策略。
全新的驭算TopsRider带来以下主要进展和新特性:
众多效果领先的AIGC文生图、文生文开源模型完成适配调优
编程模型增加C语言原生函数编程接口,提升易用性并更好地融入生态
高效自动的AI编译器在代码执行性能和代码尺寸的深度优化
算子语义覆盖面扩大,泛化性能提升,支撑框架的计算图和动态图推理
分布式通信库性能显著提升,带来低延迟的张量并行、流水并行等分布式技术
基于SRIOV技术实现高隔离的硬件虚拟化功能
片上集成视频编解码和图像处理接口,支持很多视觉任务的ALL GCU端到端部署
深度融入AI生态,对接主流深度学习框架、热门开源库和Kubernetes
广泛的软硬件适配,驱动和编译器支持多个国产CPU 架构和Linux发行版
开箱即用的SaaS/MaaS级AI应用开发部署平台
5. 软件栈架构¶
与Enflame GCU硬件配套的软件生态矩阵包括核心异构加速计算平台(驱动、运行时、编译器、开发者工具)以及扩展开发库、计算图、框架、AI开发相关的工具集,上层还提供丰富的模型、镜像、解决方案和AI开发平台等。软件组件众多,可归为以下6大类别:
TopsPlatform即TopsRider核心异构加速计算平台,驱动层稳定兼容X86 & ARM平台,支持众多国内外常用的Linux发行版。驱动和运行时支持高效的设备管理、资源管理&虚拟化、多流&多进程调度等。编译层包括TopsCC异构编译器和编程模型、性能分析/调试工具,帮助用户灵活快速地编写自定义GCU程序。
计算平台以上的扩展库包括预编译算子库、计算图编译器、通信库和多媒体库。TopsATen预编译算子库保持用户界面的稳定兼容并带来性能跃升。ECCL显著降低通信开销,同时降低对接复杂性。GCU新增加多媒体支持,软件提供适配FFmpeg库的解码接口;TopsCV图像处理接口。
AI Framework提供燧原稳定适配的主流深度学习框架和自定义推理框架Topsinference,联合下层组件实现诸多新功能和性能提升,在传统领域持续增强动态性支持和计算图加速。
AI Development Toolkit深度融入开源生态。一系列工具集涵盖了大模型开源推理引擎vLLM和Text Generation Interface(TGI)的GCU适配版本,持续支持Huggingface社区开源库低成本搭建运行AIGC任务,新推出支持大模型低精度量化的TopsCompressor,通过AI Toolbox支撑精度&性能调试以及传统模型的低精度量化。
Data Center Toolkit亦称为TopsCloud,提供Kubernetes集群下GCU部署运维的工具套件,有基础的设备和Kubernetes插件,集群自动化安装升级、调度、可视化监控告警,以及golang二次开发组件。
Enflame GCU Center提供的镜像库和解决方案支持更多的基础环境。AI Platform提供可视化AI开发部署平台,包括算法、数据集、服务部署管理和集群设备调度监控功能,重点推出了AIGC文生文、文生图、图生图场景的无代码应用平台。
6. 组件介绍¶
6.1. TopsPlatform(加速计算平台)¶
TopsPlatform是为GCU硬件设计的异构加速计算平台,在驱动之上,包含编译器、链接器、运行时库、调试器、性能分析工具等全套编程工具链。
Enflame Driver(驱动程序)¶
Enflame Driver是GCU驱动程序。内核态驱动接口层向用户程序提供设备文件节点、sysfs文件节点和debugfs节点,下层基于驱动架构,实现寄存器访问和硬件控制操作。逻辑层实现设备管理、内存管理、中断管理等核心功能,支持多进程多任务并发、硬件状态重置、高效的存储共享和资源分配。
Enflame S60产品支持了基于SRIOV的硬件虚拟化技术,通过Driver SriovMgr允许用户将整卡切分为1/2/4个VF设备,映射到虚拟机或容器中使用。VF之间有强业务隔离和强故障隔离能力,提供更好的QoS。另外继续支持整卡Pass-through到虚拟机的工作方式。
Enflame Driver集成了命令行设备管理工具EFSMI。EFSMI可获取GCU设备基本信息和实时运行状态,比如设备的内存容量,温度、风扇、各进程的内存占用,算力利用率等。EFSMI还支持一些基础的设备管理,比如使能/禁止ECC、功耗模式切换、整卡重置等。
TopsRuntime(运行时库)¶
TopsRuntime提供运行时库API,支持Context、Memory、Module、Stream和Event等维度的配置管理。
TopsRuntime增加了一些新功能:
Graph Mode,使用stream capture或接口定义节点依赖的方式创建Graph,合并提交GCU的操作为图,以调用图的形式去除主机的重复操作,从而降低开销和延迟;
SC/PC模式配置为业务进程指定独占的计算SIPs和其他资源;
内置一套运行时编译接口;
内置一套运行时常量管理更新接口,支持weight refitting。
部分运行时重要特性有所增强,比如核函数下发性能优化,执行流之间的同步性能优化,设备内存分配释放性能优化等。
用户可以直接基于TopsRuntime接口高效地执行离线编译的模型,运行时库也支持深度学习框架的运行时逻辑开发。接口设计贴近AI计算生态的最佳范式,方便用户上手和迁移业务。
另外还有TopsCodec API,提供图像解码的运行时接口,方便用户利用stream、event提升并行度。
TopsCC(异构计算编译器)¶
TopsCC包括编程模型、编程语言接口和编译器,内置设备端运行时库,支持设备端和主机端混合编程,生成高效的可执行文件。
编程模型定义了GCU的执行模型、内存模型和线程模型。通过扩展C++语言提供了一套面向向量数据和张量数据的编程接口,包括重载部分C标准库的数学函数和向量运算符,让上层应用程序接入GCU 设备的难度降低,CUDA/SYCL用户易于上手,开发模型的过程中做动态调试会更容易。
编译器内部优化指令调度,最大化指令吞吐,展开到多线程并行执行,通过多级存储优化数据搬运和分配策略,充分利用算力和内存带宽,兼顾程序执行性能和代码尺寸。针对未来的GCU硬件平台,TopsCC会保证前向兼容能力。
Developer Tools(开发者工具)¶
开发者工具集亦被称作TopsKit,由Profiler性能分析和Debugger调试工具组成。
性能分析核心组件是TopsProf命令行工具,包括高精度性能分析模块,在硬件上支持纳秒级的低开销性能数据采集,包括GCU Kernel启动和执行、IO、设备内存分配释放、主机运行时库等多层级组件的接口函数执行活动。支持在多进程、分布式、虚拟化设备场景下的单任务性能分析。采集和分析的数据显示在控制台中,也可以导出在TopsProf或TopsVisualProfiler查看。
TopsVisualProfiler支持通过本地和远程两种方式进行性能分析。提供统一的时间线视图,可以清晰地分析展示设备上的活动,同时为了方便分析Runtime时刻hotspot函数的行为,支持CPU端软件调用栈可视化分析。数据比较器方便用户对比不同的Profile Session的性能数据。
性能分析层面还有高级开发者接口:TopsPTI支持自定义运行时GCU行为的回调实现,通过一个独立于特定运行时分析器的通用分析器来跟踪API和异步活动,用于分析GCU应用程序的行为。TopsTX提供Trace API用于记录GCU程序调用过程上下文信息并且支持TopsVisualProfiler定制化显示,允许按组件domain维度选择信息输出的范围。
TopsGDB是Linux GDB 的扩展,支持主机端和设备端程序的调试,拥有常用的单步执行、插入断点、查看修改寄存器值、查看调用栈等功能,用户可以在VSCode中下载extension使用。
6.2. AI&HPC SDK(预编译计算库)¶
TopsATen是预先编译(AOT)的算子库,涵盖Pytorch 2.0以及之后版本的ATen native算子语义,关键的非Aten语义算子也有针对性的补充。除单算子外,也支持卷积/矩阵乘法和bias、激活函数的融合算子,以及注意力计算等融合算子。算子内部具备多种实现,以优化在各种参数下的性能。
TopsATen提供C++接口,支持多种数据类型、动态性、tensor view、non-continuous tensor、in-place、自动broadcast语义、混精运算,上层框架可方便地进行对接调用。
6.3. Graph Toolkit(计算图AI编译器)¶
TopsGraph是一款基于MLIR的AI编译器,通过TopsGraph Builder将各种AI框架中的GraphIR转换为统一的TopsGraph IR,并在此统一表达的基础上开展计算图的动态Shape编译优化,自动算子生成以及计算图的执行。在计算图的编译优化上支持常见的基于符号表达的代数优化,常量折叠,CSE等优化,以及多维度的自动算子融合;算子生成包括自动调度、自动调优、自动并行等关键技术;在将计算图编译为可以执行文件后,Graph Runtime以异构方式在GCU上完成该计算图高效调度与执行。
TopsGraph推出一些新特性:更好地支持动态性,包括输入形状的min-max区间指定、运行时动态形状推导、动态形状下算子自动融合,还支持用户自定义预编译算子的注册和相应的子图切分优化。
6.4. Multimedia Library(多媒体库)¶
多媒体方向包含两个组件:
FFmpeg-GCU将开源FFmpeg库运行在GCU视频编解码单元上,硬件支持的格式包括H.264/H.265/AV1/JPEG等。当前仅提供解码的底层硬件能力和编程接口,支持用户使用与FFmpeg相兼容的PyAV版本进行调用。
TopsCV支持图像处理,GCU支持CSC色彩空间转换、resize、find_contour等操作,当前仅提供C接口,接口命名和参数设计参考了OpenCV的实现。
6.5. Parallel Communication Toolkit(通信库)¶
目前主要推出ECCL集合通信库,支持LARE、PCIe、RDMA、TCP、共享内存等传输通道。ECCL支持常见的通信操作,比如Allreduce, Allgather等集合通信操作、send/recv, AlltoAll等点对点通信操作,支持通信管理和容错API。API原型和语义与开源及标杆通信库基本一致,方便开发者直接迁移、适配到AI框架。
ECCL使用fullmesh、meshdirect、ring等拓扑算法,根据数据量及带宽动态选择算法以达成高带宽、低延迟的目标。ECCL使用GCU kernel的实现方式,保障大模型所需的张量并行、流水并行等策略的低延迟。
6.6. AI Framework(AI框架)¶
软件栈支持主流AI框架,以GCU 插件注册方式支持Tensorflow和PyTorch的社区官方版本,并且通过插件接入TopsAten 算子和TopsGraph计算图AI编译器。用户安装社区官方版本和对应的GCU插件后,手动或使用迁移工具少量修改代码即可以运行模型。PaddlePaddle进行原生适配,代码合入社区官方源码库,TopsRider软件栈也会发布PaddlePaddle-GCU版本,有更加充分的测试质量保证。
自研推理框架TopsInference对接ONNX生态,支持读取解析ONNX模型,然后通过TopsGraph针对推理任务属性内建计算图优化。TopsInference集成INT8量化校准功能和混精推理、支持自定义预编译算子注册,支持动态形状、动态批任务下发,可集成服务化部署,优化多任务调度、高吞吐低延迟。TopsInference还增加了推理部署的weight refiting功能,通过贯通多层软件栈接口,允许用户在TopsGraph编译的可执行文件中更新特定命名的权重常量。TopsInference提供Python, C++接口和TopsExec命令行工具。
OnnxRuntime-TopsInference在开源OnnxRuntime上添加GCU Execution Provider ,底层对接TopsInference推理库接口,用户的OnnxRuntime脚本修改Provider后即可在GCU上运行。
6.7. AI Development Toolkit(AI应用开发工具)¶
软件栈全面支持发展迅速的AIGC算法和应用,大规模适配了Stable Diffusion、Llama、ChatGLM、Baichuan、Qwen、Mistral、Bloomz等数十种代表性的模型算法。传统领域继续扩大覆盖图像分类/检测/分割/OCR、自然语言处理、语音识别/合成、推荐等方向的常用模型。
围绕AIGC大模型社区生态,提供多个层面的工具组件:
在LLM推理引擎层面,适配业界广泛采用的vLLM和Text Generation Interface(TGI),并且在下层软件栈支持Paged Attention, Flash Attention, Continuous Batching, KV cache等众多存储/算法/服务上的优化。
推出TopsCompressor,支持大模型推理部署前的低比特量化加速,吸收并兼容AWQ、GPT-Q的量化算法,还提出具有更高精度符合GCU硬件特性的校准算法和权重,支持W8A16、W8A8、W4A16等方案。
支持Huggingface社区的多个组件,包括diffusers, transformers, peft, accelerate, safetensors等。
Model Samples提供上百个深度学习模型的下载。除了大量的AIGC模型,推理框架的丰富度有所提升,推荐、OCR、token embedding在内的模型算法的丰富度也有提升,用户选择的灵活性更大。
AI Toolbox中,TopsIdeas和TopsModelGraph帮助用户做整网分析,调试模型精度性能。TopsAIServer提供一套推理服务部署方案。
TopsStation带有整套集群SaaS级AI开发部署平台组件,可视化前端支持集群调度运维、训推一体应用开发、算法和业务数据管理。公司级用户通过安装或镜像部署,迅速搭建高可用的端到端AI研发平台,支持大规模算法团队的研发协同。
LumiCanvas, LumiVerse是MaaS级别的文生图、文生视频和文生文工具,允许没有任何技术背景的用户使用可视化界面进行创作和产出,底层由GCU算力支持模型推理服务。
6.8. Data Center Toolkit(集群运维管理工具集)¶
Data Center Toolkit是Kubernetes集群部署运维的PaaS层工具集,统一称为TopsCloud,有以下主要组件:
基础的GCU container toolkit 和K8S device plugin,支持设备在容器内挂载并在K8S集群中被发现和调度,支持docker、containerd容器引擎,支持多个Kubernetes官方版本。
GCU operator 支持集群内TopsRider软件栈的自动化安装升级。
Node Feature Discovery + GCU Feature Discovery(NFD + GFD)提供节点和设备标签工具,可获取主机系统和GCU的基本特性和配置信息。
Node Exporter + GCU Exporter支持系统和GCU设备的数据可视化运维监控告警,Node Exporter版本经过内部充分的兼容性验证,在此基础上提供一套Prometheus + Grafana的示例。
Go - EFlib允许用户基于Golang进行二次开发。
GCUShare 支持云厂商在K8S POD内灵活申请GCU Memory容量(1GB~48GB)并调度分配给租户。
6.9. Enflame GCU Center(镜像和解决方案)¶
EGC官方网站为用户提供丰富的官方容器镜像资源,针对不同的框架、推理库或解决方案,提供经过严格验证的镜像,可以准确复现模型在GCU上的精度和性能。用户可轻松拉取符合需要的镜像,使用模型示例内置的脚本安装相匹配的依赖库,快速运行一个模型任务或自定义开发,杜绝复杂的环境准备和调试工作。
在新一代Enflame S60和上一代Enflame i20&T20硬件基础设施之上,驭算TopsRider软件栈已实际落地了AIGC模型支撑的智能问答、智能客服、代码生成、文生图、文生视频、内容审核等业务,传统的图像、NPL、推荐业务也在继续扩大使用GCU。未来TopsRider软件栈将在Enflame GCU平台上持续演进,助力互联网应用、云服务、智慧城市/政务/金融、高校科研以及更多行业的AI变革和增效。