算力与模型之间,需要一个“主板”
一、为什么AI越强大,硬件越混乱?
当模型规模指数级增长,硬件生态却陷入碎片化困境:GPU、NPU、TPU、FPGA... 每种设备都有自己的语言、内存模型和调度机制。
不同厂商的硬件具有不同的指令集、内存结构和优化策略,而模型本身也在结构、精度、计算模式上差异巨大。这种“多样性 × 多样性”的组合爆炸,使得直接部署和高效运行变得异常复杂。
“主板”不是物理电路板,而是软件定义的智能算力操作系统
它要解决的根本矛盾是:如何让千姿百态的AI模型在五花八门的硬件上“即插即用”?
因此,业界正在积极构建一种类似于“主板”的统一抽象层或调度框架,其核心目标是:
- 屏蔽底层硬件差异:通过统一的设备发现、内存管理、任务提交接口,动态加载厂商特定的后端驱动
- 实现模型与算力的自动适配:例如通过模板规则或策略配置框架,灵活地将模型的不同部分调度到最适合的计算单元上
- 提升算力利用率与部署效率:将原本孤立的异构资源池化,形成可统一调度的“算力网络”
这种“主板”在软件层面可能体现为异构AI算力操作平台或统一推理框架,如华为的 CANN、NVIDIA 的 Triton、Apache TVM、MLIR 等,它们试图在硬件与模型之间架起一座桥梁,实现“一次开发,随处高效运行”的愿景。
这需要一套全新的中间层架构,实现三重解耦:
- 模型与硬件解耦
- 算法与芯片解耦
- 任务与资源解耦
二、三层架构:如何让模型与硬件自由对话?
参考当前业界实践与研究(如TVM、MLIR、Triton、华为CANN、阿里PAI灵骏等),这类“主板”可以清晰地划分为三层架构,每层包含若干关键组件与核心技术。
2.1 整体分层架构(三层模型)
2.1.1. 应用/模型层(Model Abstraction Layer)
目标:对上屏蔽模型多样性,提供统一接口。
核心组件:
- 模型表示与解析器:支持ONNX、PyTorch、TensorFlow等主流框架模型的导入与标准化。
- 计算图抽象(如Relay in TVM, TorchDynamo in PyTorch):将模型转化为中间计算图(IR),便于后续优化。
- 算子库(Operator Library):提供标准算子(如Conv、MatMul、Attention)的语义定义,不绑定具体硬件。
关键技术:
- 图级优化:算子融合(Fusion)、常量折叠、死代码消除。
- 动态Shape支持:应对大模型推理中变长输入的挑战。
例如,TVM的Relay层专注于计算图的全局优化,如算子融合与常量折叠 。
2.1.2. 编译与运行时层(Compilation & Runtime Layer)——“主板”的核心
目标:实现模型到异构硬件的高效映射与执行。
核心组件:
- 统一中间表示(IR)系统:如MLIR的多级IR、TVM的TIR(Tensor IR)。
- 调度器(Scheduler):决定如何将计算任务映射到特定硬件(如GPU线程块、NPU张量核)。
- 代码生成器(Codegen):生成目标硬件的可执行代码(CUDA、OpenCL、LLVM IR、二进制Blob)。
- 统一运行时(Unified Runtime):管理设备内存、任务提交、同步与错误处理。
关键技术:
- 自动调度(Auto-scheduling):如Ansor(TVM)、AutoTVM,通过搜索最优调度策略。
- 多后端支持:同一套IR可编译到NVIDIA GPU、AMD GPU、华为昇腾、寒武纪MLU、ARM CPU等。
- 动态编译与JIT:在运行时根据输入Shape或硬件状态生成最优代码。
MLIR通过模块化IR实现跨平台通用优化,而Triton则专注于GPU原生深度优化 。TVM与MLIR代表了两种不同的设计范式:前者是端到端编译器,后者是构建编译器的框架 。
2.1.3. 资源管理层(Resource Management Layer)
目标:对下屏蔽硬件异构性,实现资源池化与调度。
核心组件:
- 硬件抽象层(HAL):统一设备发现、内存分配、任务队列接口。
- 资源虚拟化与切分:如GPU MIG切分、显存超分、算力切片。
- 集群调度器:支持多租户、优先级队列、弹性扩缩容(如Kubernetes + Volcano)。
- 统一通信库:如NCCL、HCCL、自研集合通信库,解决跨芯片通信问题 。
关键技术:
- 异构资源统一调度:将CPU、GPU、NPU等视为统一资源池进行分配 。
- 软件定义算力:通过虚拟化形成AI算力虚拟资源池,支持细粒度切分 。
- 三层抽象架构:统一算子、统一内存、统一跨芯通信 。
一些平台采用“中心节点 + N个边缘节点”架构,实现异地多活的集群协同管理 。
2.2 按功能分类(两类视角)
| 分类维度 | 类型 | 代表系统 |
|---|---|---|
| 按抽象粒度 | 编译器型(聚焦单模型到单设备) | TVM、Triton、MLIR |
| 平台型(聚焦集群资源调度与多租户) | 华为CANN、阿里灵骏、品高BingoAI、NVIDIA Triton Inference Server | |
| 按设计哲学 | 通用跨平台(强调可移植性) | MLIR、OpenCL、TVM |
| 硬件深度优化(强调极致性能) | Triton(GPU)、厂商私有编译器(如Ascend C) |
2.3 “主板”的本质
这个“主板”实质上是一个软件定义的智能算力操作系统,它通过三层架构(模型抽象 → 编译运行时 → 资源管理)和统一中间表示(如MLIR)技术,实现了:
- 向上:让千姿百态的模型“即插即用”;
- 向下:让异构算力“即插即管”;
- 向内:通过自动优化与调度,实现性能与效率的平衡。
三、通用还是特化?根据场景的权衡
不同类型的“主板”(即异构AI算力统一调度与编译平台)因其设计目标、抽象粒度和优化重点不同,适用于差异化的应用场景和用户需求。结合当前主流技术栈,可将其划分为三类典型“主板”,并对应不同场景:
3.1 通用跨平台编译型“主板”
代表系统:Apache TVM、MLIR
核心特点:强调可移植性、硬件无关性,支持从CPU到各类AI加速器的广泛后端。
适用场景:
- 国产芯片适配与生态构建:如在昇腾、寒武纪、沐曦GPU等非CUDA生态芯片上部署主流模型,TVM通过自定义代码生成器(Codegen)实现“一次编写,多端部署”。
- 边缘/端侧推理:资源受限设备(如ARM CPU、NPU)需要轻量级、可裁剪的运行时,TVM的微内核(microTVM)支持嵌入式部署。
- 科研与算法快速验证:研究人员希望在多种硬件上对比模型性能,而无需重写底层代码。
典型需求:
- 支持ONNX/TensorFlow/PyTorch等多框架模型导入;
- 能自动优化算子性能(如AutoTVM、Ansor);
- 对动态Shape、稀疏计算等新特性有良好支持。
例如,沐曦GPU通过TVM构建软件栈,使能主流AI框架在其硬件上高效运行。
3.2 高性能专用优化型“主板”
代表系统:NVIDIA Triton Inference Server、TensorRT、Triton(编译器)
核心特点:深度绑定特定硬件(尤其是NVIDIA GPU),追求极致推理性能与生产级稳定性。
适用场景:
- 大规模在线推理服务:如对话式AI、推荐系统、AIGC生成服务,需高吞吐、低延迟、多模型并发。
- 模型服务化(Model-as-a-Service):支持模型热更新、版本管理、A/B测试,无需重启服务。
- 多模型流水线集成:如语音识别 → NLP理解 → 语音合成的端到端Pipeline,Triton原生支持多模型编排。
典型需求:
- 支持动态批处理(Dynamic Batching)、并发模型执行;
- 与Kubernetes、Prometheus等云原生生态无缝集成;
- 提供完善的监控、日志、指标暴露能力。
Triton在生产环境中支持模型实时更新,特别适合需要持续迭代的AI服务。
3.3 厂商垂直整合型“主板”
代表系统:华为CANN、寒武纪MagicMind、百度XPU Stack
核心特点:软硬协同设计,深度绑定自家芯片,提供从驱动、算子库到调度器的全栈优化。
适用场景:
- 信创/国产化替代项目:政府、金融、能源等行业要求使用国产AI芯片,需完整替代CUDA生态。
- 大规模训练与推理一体化集群:如华为昇腾集群,通过CANN统一管理数千张NPU,提供CNCL通信库、CNNL算子库等组件。
- 高安全、高可控环境:对供应链安全有严格要求的场景,需封闭但高效的软硬件栈。
典型需求:
- 提供类CUDA的编程接口(如Ascend C),降低迁移成本;
- 支持大模型分布式训练(如3D并行);
- 与厂商云平台(如华为云ModelArts)深度集成。
华为CANN为昇腾芯片提供统一编程平台,其算子库和通信库与CUDA生态差异较大,但实现了全栈自主可控。
3.5 选型建议
| 需求特征 | 推荐“主板”类型 |
|---|---|
| 多硬件支持、国产芯片适配 | TVM / MLIR |
| 高性能GPU推理、云原生部署 | Triton Inference Server |
| 极致性能、绑定NVIDIA生态 | Triton(编译器)+ TensorRT |
| 全栈国产化、信创项目 | 华为CANN、寒武纪MagicMind等厂商方案 |
| 边缘/端侧轻量化部署 | microTVM、TFLite + TVM后端 |
正如行业实践所示,MLIR与Triton代表了AI编译器的两种范式:前者重通用性与异构协同,后者重GPU原生性能。选择哪种“主板”,本质上是在可移植性、性能、生态成熟度与可控性之间做权衡。
标签:ai