技术栈架构

MUSA (Metaverse Unified System Architecture),是摩尔线程(Moore Threads)推出的运算平台。MUSA 是一种通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题。 它包含了 MUSA 指令集架构(ISA)以及 GPU 内部的并行计算引擎。

1. 系统软件层

  • 摩尔线程GPU驱动:提供GPU的基本系统级支持
  • MUSA Driver API:低级 API,提供对 GPU 的直接控制
    • 开发者需要做显式的设备初始化、context管理和module管理
    • 允许直接管理设备、内存分配和程序执行
    • 适用于需要细粒度控制的高级应用

2. 运行时环境层

  • MUSA Runtime API:基于MUSA Driver API的封装
    • 提供更高级的抽象,简化了 GPU 的使用
    • 隐式完成了设备初始化,context管理和module管理
    • 更适合一般开发者使用,提供了更好的易用性

3. 编程模型和语言层

  • MUSA C/C++:是一种专为摩尔线程GPU设计的编程语言,它是C++的扩展,允许开发者编写可在GPU上执行的程序。
    • MUSA C++由C++语言扩展和运行时库组成。
    • 核心C++语言扩展引入了编程模型。
    • 运行时库提供在Host上执行的函数。

4. 计算库层

  • muBLAS:提供基础线性代数运算,优化了AI和高性能计算(HPC)场景。

  • muFFT:执行快速傅里叶变换。

  • muRAND:生成伪随机数和准随机数。

  • muSPARSE:专注于稀疏矩阵的数学运算,优化存储和计算效率。

  • muPP:提供图像和信号处理的高性能函数库。

  • MCCL:摩尔线程集合通信库,支持多GPU和多节点通信,提供高效的数据传输和同步机制。

    • MCCL 提供了 all-gather、all-reduce、broadcast、reduce、reduce-scatter、point-to-point send 和 receive 等原语,可通过节点内的 PCIe 和 MTLink 高速互联以及节点间的InfiniBand网络实现高带宽和低延迟。
    • MCCL支持节点内和跨节点通信。可以实现拓扑的自动检测,计算最佳的路径,最终实现GPUs之间的高效传输
  • muDNN:专为深度学习设计的加速库,支持多种网络模型和算子。

    • 支持多种深度学习模型,如CNN、RNN、GNN等。
    • 提供了高度优化的算子实现,如卷积、池化、激活函数等。
    • 支持自动并行计算和内存管理,提高计算效率。
  • muTENSOR:提供张量计算支持,优化了机器学习和科学计算的性能。

    • 提供了丰富的张量操作,如张量创建、切片、合并、数学运算等。
    • 高度优化的张量计算性能,支持并行计算和GPU加速。
    • 支持多种数据类型和设备,如GPU、CPU等。
  • muTLASS:图计算库,支持图神经网络(GNN)的高效运算。

    • 支持多种图神经网络模型,如GCN、GAT、GraphSAGE等。
    • 提供了高度优化的图计算算子,如消息传递、读取邻居等。
    • 支持自动并行计算和内存管理,提高计算效率。
  • MT Data Loader:高效的数据加载库,支持并行数据加载和预处理。

    • 支持多种数据格式,如图片、文本、音频等。
    • 提供了高速的数据加载和预处理能力,支持并行加载和多线程处理。
    • 支持在线数据增强和预处理,减少数据加载时间。 5. 模型框架层
  • Torch MUSA:摩尔线程适配了流行的开源AI框架PyTorch,使得PyTorch能够利用MUSA GPU进行加速计算,极大地提升了深度学习模型的开发和部署效率。

    • CUDA 兼容性:torch_musa 可以实现与 CUDA 的兼容,这大大减少了适配新操作符的工作量。
    • API 一致性:torch_musa 的 API 格式与 PyTorch 一致,使习惯使用 PyTorch 的用户能够顺利迁移到 torch_musa。