AI 编译器 runtime 的主要作用
1.执行调度
- 管理模型中各个算子(操作)的执行顺序。
- 根据依赖关系决定哪些可以并行执行、哪些需要先执行。
2.内存管理
- 动态申请和释放内存,包括模型的权重、输入输出张量、中间变量等。
- 做 memory reuse(内存复用)以提升效率。
3.硬件抽象
- 跨平台支持:无论是 CPU、GPU、NPU 还是 FPGA,runtime 负责调用具体的底层 API(比如 CUDA、Metal、OpenCL、DirectML)。
- 屏蔽硬件细节,让模型开发者不用关心具体的芯片差异。
4.操作符实现与调用
- 封装并调用优化后的算子库,如 cuDNN、MKL-DNN、ACL 等。
- 某些 AI 编译器的 runtime 还会动态选择最优实现版本(称为算子融合、调度器等)。
5.输入输出处理
- 管理模型的输入和输出 tensor。
- 与外部接口进行数据交换(如 C++、Python 接口,或和 Web 前端通信)。
6.调试与日志
- 提供调试接口,比如中间 tensor 的 dump、性能 profiling、错误信息记录等。
7.模型部署支持
- 支持模型热加载、版本切换、batch 管理、异步推理、多线程等部署场景。