# caas-cli **Repository Path**: du0898/caas-cli ## Basic Information - **Project Name**: caas-cli - **Description**: 为什么需要 CaaS? 随着美国对 NVIDIA 高端芯片出口管制持续升级,国产 AI 芯片(昇腾、寒武纪、海光等)正在加速替代。然而,迁移成本是摆在每个团队面前的现实问题: 🐌 人工迁移一个中等规模项目需要 数周到数月 🧩 CUDA 与国产芯片之间的算子不兼容,API 差异巨大 📉 迁移后性能回退,缺乏诊断手段 📚 新硬件 SDK(CANN、Neuware、DTK)学习曲线陡峭 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-21 - **Last Updated**: 2026-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CaaS — 让 CUDA 代码零门槛跑在国产芯片上 [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE) --- ## 为什么需要 CaaS? 随着美国对 NVIDIA 高端芯片出口管制持续升级,国产 AI 芯片(昇腾、寒武纪、海光等)正在加速替代。然而,**迁移成本**是摆在每个团队面前的现实问题: - 🐌 人工迁移一个中等规模项目需要 **数周到数月** - 🧩 CUDA 与国产芯片之间的算子不兼容,API 差异巨大 - 📉 迁移后性能回退,缺乏诊断手段 - 📚 新硬件 SDK(CANN、Neuware、DTK)学习曲线陡峭 **CaaS 的目标:把迁移成本从「月级」降到「分钟级」。** ## 功能特性 | 功能 | 说明 | |------|------| | 🔍 **静态分析** | 解析 CUDA / PyTorch 源码,识别所有算子和 API 调用 | | 🔄 **自动转换** | 生成昇腾 CANN、寒武纪 BANG C、海光 HIP 等价代码 | | 📊 **兼容性报告** | 秒级评估迁移可行性,给出具体修改建议 | | 📝 **代码骨架生成** | 对不支持的算子自动生成 Ascend C kernel 桩代码 | | 🚫 **零依赖** | 无需安装 PyTorch 或目标芯片 SDK 即可运行分析 | ## 快速开始 ### 安装 ```bash pip install caas-cli ``` ### 第一步:分析 PyTorch 模型兼容性 ```bash caas analyze model.py --target ascend ``` 输出示例: ``` ╔══════════════════════════════════════════════════════════╗ ║ CaaS Migration Analyzer v0.1.0 ║ ║ 目标: 华为昇腾 910B (CANN 7.0) ║ ╠══════════════════════════════════════════════════════════╣ ║ 文件: model.py ║ ║ 模型: ResNet18 ║ ║ 算子总数: 18 ║ ║ ║ ║ ✅ 直接映射: 15 (83.3%) ║ ║ ⚠️ 需分解: 2 (11.1%) ║ ║ 🔧 需自定义: 1 (5.6%) ║ ║ ❌ 暂不支持: 0 (0.0%) ║ ║ ║ ║ 兼容率: 83.3% ║ ║ 模式识别: ResNet-like CNN ║ ╚══════════════════════════════════════════════════════════╝ ``` ### 第二步:转换 CUDA 源码 ```bash caas convert kernel.cu --target cann --output kernel_cann.cpp ``` 自动完成: - `cudaMalloc` → `aclrtMalloc` - `cudaMemcpy` → `aclrtMemcpy` - `<<>>` → `aclLaunchKernel` - cuBLAS → ACL 等价调用 - 100+ 种 API 映射 ### 第三步:生成迁移报告 ```bash caas analyze model.py --target ascend --output report.md ``` ## 支持的国产芯片 | 芯片 | 厂商 | 软件栈 | 支持状态 | |------|------|--------|---------| | 昇腾 910B | 华为 | CANN 7.0 | ✅ 完整支持 | | 思元 590 | 寒武纪 | Neuware 5.0 | ✅ 完整支持 | | 深算一号 K100 | 海光 | DTK 22.10 | ✅ 完整支持 | ## 工作原理 ``` ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ │ CUDA/C++ │────▶│ CUDA 解析器 │────▶│ 算子映射引擎 │────▶│ 代码生成器 │ │ /PyTorch │ │ (AST/正则) │ │ (三芯数据库) │ │ (CANN/BANG) │ └─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ │ 源码信息 │ │ 兼容性报告 │ │ 转换后代码 │ │ (函数/API/ │ │ + 风险评估 │ │ + 桩代码 │ │ 内存操作) │ │ │ │ │ └──────────────┘ └─────────────────┘ └──────────────┘ ``` ## CLI 命令参考 ```bash # 分析 PyTorch 模型兼容性 caas analyze --target {ascend,cambricon,hygon} [--output report.md] # 转换 CUDA 源码到目标框架 caas convert --target {cann,bang,hip} [--output converted.cpp] # 查看支持的芯片和映射 caas info # 查看版本 caas --version ``` ## 开发 ```bash git clone https://github.com/caas-cli/caas.git cd caas pip install -e ".[dev]" pytest ``` ## 路线图 - [ ] 支持昆仑芯(毕昇) - [ ] ONNX 模型导入与转换 - [ ] 性能剖析集成 - [ ] 大规模代码库批量转换 - [ ] 交互式迁移向导 ## 许可证 Apache License 2.0,详见 [LICENSE](LICENSE)。