CATLASS DSL

CATLASS DSL 是 CATLASS 的 Python 前端。它在 AscendNPU-IR 的基础上构建 TLA Dialect,将 Python 中描述的 TLA 操作降级为 MLIR,并由 AscendNPU-IR 工具链编译为可执行的核函数产物。

目前,CATLASS DSL 主要对 TLA 框架提供了DSL封装,可以使用tla.make_tensor等API来描述TLA操作,完成算子的实现。未来,我们将继续扩展CATLASS DSL,在全量支持TLA tensor抽象接口、矩阵向量计算等接口的基础之上,进行类似CATLASS 模板的封装,实现对齐CATLASS C++模板算子的开发体验。

文档

快速开始

先按照环境准备完成安装,并按构建 AscendNPU-IR预先构建依赖,同时设置 CATLASS_DSL_PREBUILT_ASCENDNPU_IRbuild.sh 本身不会构建 AscendNPU-IR。

下文命令均在 DSL 子项目根目录执行,其中 /path/to/catlass 需替换为你 clone 的 CATLASS 仓库根目录:

cd /path/to/catlass/python/tla_dsl

1. 构建

./build.sh

build.sh 默认执行 Debug 开发构建:检查 AscendNPU-IR 构建产物、生成 TLA Python op 绑定、在 csrc/mlir/build 构建 TlaCompile 与类型桥接动态库,并以 editable 模式安装 ascend-catlass-dsl

2. NPU 端到端示例(需要 NPU)

python examples/end_to_end/basic_mmad/basic_matmul.py --device 0

更多构建选项(Release wheel、清理重建)与仓库级回归的说明见编译与测试

兼容性

CATLASS DSL 各版本支持的硬件平台及所需的最低 CANN 版本如下表:

CATLASS DSL 版本 最低支持 CANN 包版本 支持昇腾产品
当前 >= 9.1.0 Ascend 950PR / Ascend 950DT

软硬件环境要求:

  • CPU 架构:aarch64 / x86_64
  • 系统:CANN 支持的 Linux
  • 软件依赖:Python >= 3.10, < 3.14、CMake >= 3.28, < 4.0、Ninja >= 1.12、Clang / Clang++ >= 10(构建 AscendNPU-IR 时;推荐 19)、lld、AscendNPU-IR feature/regbase@a07821269…

完整的环境要求与安装方式见环境准备

目录概览

python/tla_dsl/
├── 3rdparty/AscendNPU-IR/  # AscendNPU-IR 子模块
├── catlass/                # Python 前端与运行时
├── csrc/mlir/              # TLA Dialect 与编译器实现
├── docs/zh/                # 中文文档
├── docs/en/                # 英文文档
├── examples/               # 端到端示例
├── Dockerfile              # 开发环境镜像定义
├── build_docker_image.sh   # 镜像构建入口
├── build.sh                # 项目构建入口
└── requirements.txt        # 非 CANN Python 依赖