本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Format according to clang-format rules Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !3282 merge update_clang_format into master Format according to clang-format rules Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 本 PR 更新 clang-format 的 pre-commit 检查范围,并对新增纳入范围的样例代码执行一次全量格式化。 主要改动: - 调整 .pre-commit-config.yaml 中 clang-format 的文件匹配范围。 - 对 examples/ 下当前纳入 clang-format 范围的 C/C++/ASC 代码执行全量格式化。 - 对 .agent/tests/skills/asc-api-ut-gen/golden 下的 C++ golden 文件执行格式化。 - 同步调整 asc-api-ut-gen 的生成模板,使 AIV/AIC 生成结果直接匹配格式化后的 golden,避免只改 golden 导致生成器测试 diff 失败。 - 修正 asc-api-ut-gen 生成模板中的 copyright 头格式和参数化 gtest 生成格式。 ## 关联的Issue 无 ## 测试 已执行: - pre-commit run clang-format --all-files:通过 ## 文档更新 无 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式化 See merge request: cann/asc-devkit!3282 | 4 个月前 | |
add skill for asc-devkit Co-authored-by: YANXI_ZHAO<zhaoyanxi3@hisilicon.com> # message auto-generated for no-merge-commit merge: !2158 merge master into master add skill for asc-devkit Created-by: YANXI_ZHAO Commit-by: YANXI_ZHAO Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 针对asc-devkit仓增加两个skill,一个skill是asc-api-ut-gen用于自动补全API的单元测试,另一个为asc-npu-arch提供芯片架构相关信息。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2158 | 5 个月前 | |
add skill for asc-devkit Co-authored-by: YANXI_ZHAO<zhaoyanxi3@hisilicon.com> # message auto-generated for no-merge-commit merge: !2158 merge master into master add skill for asc-devkit Created-by: YANXI_ZHAO Commit-by: YANXI_ZHAO Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 针对asc-devkit仓增加两个skill,一个skill是asc-api-ut-gen用于自动补全API的单元测试,另一个为asc-npu-arch提供芯片架构相关信息。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2158 | 5 个月前 | |
fix oat pre-commit macos compatibility Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3193 merge opt_ci_job into master fix oat pre-commit macos compatibility Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 完善 asc-devkit 的 pre-commit/OAT 合规检查链路,并修复当前 OAT 扫描暴露的问题。 主要改动: - 完善本地 pre-commit 配置:保留基础检查、clang-format、ruff、codespell 与本地 oat-check hook。 - 删除重复的 typos 拼写检查,避免与 codespell 功能重叠并维护两套专有词白名单。 - 修复 scripts/oat_check.sh 在 macOS/BSD 环境下的兼容性,避免依赖 GNU sed 行为。 - 使用 oat-py 作为 OAT 扫描入口,并在 .devcontainer/requirements.txt 中补充 oat-py>=1.0.0。 - 增强 oat-check 结果判断:同时汇总并拦截 Invalid File Type、License Header Invalid、Copyright Header Invalid。 - 修复 pre-commit 分批执行时 oat_reports/result.txt 统计不完整的问题,按同一次扫描聚合多个 batch 的结果。 - 修正 OAT 策略范围:将不需要 license/copyright header 的文件类型放入 defaultPolicyFilter/copyrightPolicyFilter,并清理当前仓库匹配数量为 0 的过滤项。 - 修复 OAT Invalid File Type 问题:过滤 *.png、.clangd、SWSCRL.crl 等允许的二进制/工具配置文件。 - 修复 OAT License Header Invalid / Copyright Header Invalid 问题:补齐或修正相关测试、样例和脚本文件的 CANN license/copyright header。 - 已撤回误带入的 clang-format 格式化差异,最终 C/C++ 相关文件只保留合规文案修复。 ## 关联的Issue 无。 ## 测试 已完成以下验证: - sh -n scripts/oat_check.sh - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("OAT.xml")' - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh - pre-commit run oat-check --all-files - Files Checked: 14140 - Runs Aggregated: 10 - Invalid File Type Total Count: 0 - License Header Invalid Total Count: 0 - Copyright Header Invalid Total Count: 0 - OAT filter 命中审计:defaultPolicyFilter、copyrightPolicyFilter、binaryFileTypePolicyFilter 均为 zero_match=0 - bash scripts/oat_check.sh .clangd:通过,确认 .clangd 不再被误判为非法二进制文件 - bash scripts/oat_check.sh OAT.xml scripts/oat_check.sh .pre-commit-config.yaml:通过,确认增量 OAT 检查正常 - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh:通过,确认删除 typos 后变更文件仍通过提交钩子 - git diff --check - 远端 GitCode hook 检查通过 说明:未声明 pre-commit run --all-files 全量通过;当前全仓 codespell 会扫出既有拼写问题,本 PR 只验证变更文件范围的 pre-commit 和全量 OAT。 ## 文档更新 无用户文档更新。 本 PR 仅涉及 pre-commit/OAT 检查配置、devcontainer 依赖和合规修复;未修改面向用户的使用文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3193 | 4 个月前 | |
fix oat pre-commit macos compatibility Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3193 merge opt_ci_job into master fix oat pre-commit macos compatibility Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 完善 asc-devkit 的 pre-commit/OAT 合规检查链路,并修复当前 OAT 扫描暴露的问题。 主要改动: - 完善本地 pre-commit 配置:保留基础检查、clang-format、ruff、codespell 与本地 oat-check hook。 - 删除重复的 typos 拼写检查,避免与 codespell 功能重叠并维护两套专有词白名单。 - 修复 scripts/oat_check.sh 在 macOS/BSD 环境下的兼容性,避免依赖 GNU sed 行为。 - 使用 oat-py 作为 OAT 扫描入口,并在 .devcontainer/requirements.txt 中补充 oat-py>=1.0.0。 - 增强 oat-check 结果判断:同时汇总并拦截 Invalid File Type、License Header Invalid、Copyright Header Invalid。 - 修复 pre-commit 分批执行时 oat_reports/result.txt 统计不完整的问题,按同一次扫描聚合多个 batch 的结果。 - 修正 OAT 策略范围:将不需要 license/copyright header 的文件类型放入 defaultPolicyFilter/copyrightPolicyFilter,并清理当前仓库匹配数量为 0 的过滤项。 - 修复 OAT Invalid File Type 问题:过滤 *.png、.clangd、SWSCRL.crl 等允许的二进制/工具配置文件。 - 修复 OAT License Header Invalid / Copyright Header Invalid 问题:补齐或修正相关测试、样例和脚本文件的 CANN license/copyright header。 - 已撤回误带入的 clang-format 格式化差异,最终 C/C++ 相关文件只保留合规文案修复。 ## 关联的Issue 无。 ## 测试 已完成以下验证: - sh -n scripts/oat_check.sh - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("OAT.xml")' - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh - pre-commit run oat-check --all-files - Files Checked: 14140 - Runs Aggregated: 10 - Invalid File Type Total Count: 0 - License Header Invalid Total Count: 0 - Copyright Header Invalid Total Count: 0 - OAT filter 命中审计:defaultPolicyFilter、copyrightPolicyFilter、binaryFileTypePolicyFilter 均为 zero_match=0 - bash scripts/oat_check.sh .clangd:通过,确认 .clangd 不再被误判为非法二进制文件 - bash scripts/oat_check.sh OAT.xml scripts/oat_check.sh .pre-commit-config.yaml:通过,确认增量 OAT 检查正常 - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh:通过,确认删除 typos 后变更文件仍通过提交钩子 - git diff --check - 远端 GitCode hook 检查通过 说明:未声明 pre-commit run --all-files 全量通过;当前全仓 codespell 会扫出既有拼写问题,本 PR 只验证变更文件范围的 pre-commit 和全量 OAT。 ## 文档更新 无用户文档更新。 本 PR 仅涉及 pre-commit/OAT 检查配置、devcontainer 依赖和合规修复;未修改面向用户的使用文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3193 | 4 个月前 | |
add skill for asc-devkit Co-authored-by: YANXI_ZHAO<zhaoyanxi3@hisilicon.com> # message auto-generated for no-merge-commit merge: !2158 merge master into master add skill for asc-devkit Created-by: YANXI_ZHAO Commit-by: YANXI_ZHAO Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 针对asc-devkit仓增加两个skill,一个skill是asc-api-ut-gen用于自动补全API的单元测试,另一个为asc-npu-arch提供芯片架构相关信息。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2158 | 5 个月前 | |
feat(devx): improve clangd support for AscendC .asc/.aicpu files Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !1633 merge clangd_opt into master feat(devx): improve clangd support for AscendC .asc/.aicpu files Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次主要优化 AscendC 的 clangd 开发体验:统一 .clangd 到 /usr/local/Ascend/cann 软链路径;补充 .aicpu 解析支持(与 .asc 一致);收敛 clangd 宏与诊断抑制规则以减少专有语法误报;同时更新 .vscode,.devcontainer,README,默认以 clangd 为主进行代码解析,并关闭 cpptools 的 IntelliSense 以减少双引擎冲突。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!1633 | 6 个月前 | |
Fix ASC sim shared library link paths Co-authored-by: Geminiver<zhengjianwei10@huawei.com> # message auto-generated for no-merge-commit merge: !3335 merge master into master Fix ASC sim shared library link paths Created-by: Geminiver Commit-by: Geminiver Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复在编动态库场景下,仿真库链接失效的情况 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3335 | 4 个月前 | |
Ascend 950PR/Ascend 950DT asc_gather_datablock函数补齐uint64非mask入参版本 Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !3339 merge fix/asc_gather_datablock_uint64 into master Ascend 950PR/Ascend 950DT asc_gather_datablock函数补齐uint64非mask入参版本 Created-by: leozjr Commit-by: zhangjiru Merged-by: cann-robot Description: ## 描述 为 asc_gather_datablock 函数补齐 uint64 类型的非mask入参版本。根据API的实现情况,asc_gather_datablock 应该支持无mask参数的调用方式,但uint64类型在无mask场景下的测试用例缺失。本次MR补齐了该测试用例,并在对应的实现文件中完善了相关函数定义。 改动涉及: - 在 asc_gather_datablock_impl.h 中添加 uint64 类型无mask入参的函数实现 - 在 asc_gather_datablock.md 中更新API文档 - 在 reg_load.h 中声明新增的 uint64 无mask版本函数 - 在 vector_datamove_impl.h 中添加函数包装 - 在单元测试中添加对应的测试用例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 已添加单元测试用例 TEST_VECTOR_DATAMOVE_GATHER_DATABLOCK_INSTR_1 以验证: - uint64 类型无mask参数的 asc_gather_datablock 调用 - 确保底层 vgatherb 指令被正确调用 ## 文档更新 - 更新了 asc_gather_datablock.md 文档,完善了 uint64 类型无mask入参的API说明 ## 类型标签 - [x ] 🐛 fix: Bug 修复 - [] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3339 | 4 个月前 | |
修复examples仓样例问题 Co-authored-by: git status<zhoujingyi9@hisilicon.com> # message auto-generated for no-merge-commit merge: !3362 merge master into master 修复examples仓样例问题 Created-by: hw-zjy Commit-by: git status Merged-by: cann-robot Description: ## 描述 修复examples仓样例问题,包括精度问题/编译warning问题/资料描述问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3362 | 4 个月前 | |
Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Co-authored-by: leozjr<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !3041 merge master into master Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Created-by: leozjr Commit-by: zhangjiru;leozjr Merged-by: cann-robot Description: ## 描述 将标量计算 atomic 操作 C API 从 SIMT 层迁移至 npu_arch_3510 (A5) 平台,并补充完整的单元测试。 **标量接口迁移到A5:** - 新增 11 个 atomic 操作的 impl 实现头文件( asc_atomic_add/sub/or/xor/and/max/min/inc/dec/exch/cas) - 新增 scalar_compute_impl.h 统一入口头文件,包含所有标量计算实现 - 在 include/c_api/scalar_compute/scalar_compute.h 中补充接口声明 - 更新 device_atomic_functions.h 和 device_atomic_functions_impl.h 适配迁移 - 为上述 11 个 atomic 操作各新增一个 UT 文件 - 每个 UT 覆盖 int32_t、uint32_t、float、int64_t、uint64_t 五种数据类型 - 使用 MockCPP 对底层硬件指令函数进行 mock 验证 ## 关联的Issue https://gitcode.com/cann/asc-devkit/issues/978 ## 测试 - 编译通过:cmake --build build --target ascendc_ut_c_api_ascend950pr_9599_AIV -j8 - 单元测试通过:使用 --gtest_filter 过滤条件运行,11 个 atomic 操作共 55 个用例全部 PASSED ## 文档更新 无 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 ```请具体描述 See merge request: cann/asc-devkit!3041 | 4 个月前 | |
Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Co-authored-by: leozjr<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !3041 merge master into master Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Created-by: leozjr Commit-by: zhangjiru;leozjr Merged-by: cann-robot Description: ## 描述 将标量计算 atomic 操作 C API 从 SIMT 层迁移至 npu_arch_3510 (A5) 平台,并补充完整的单元测试。 **标量接口迁移到A5:** - 新增 11 个 atomic 操作的 impl 实现头文件( asc_atomic_add/sub/or/xor/and/max/min/inc/dec/exch/cas) - 新增 scalar_compute_impl.h 统一入口头文件,包含所有标量计算实现 - 在 include/c_api/scalar_compute/scalar_compute.h 中补充接口声明 - 更新 device_atomic_functions.h 和 device_atomic_functions_impl.h 适配迁移 - 为上述 11 个 atomic 操作各新增一个 UT 文件 - 每个 UT 覆盖 int32_t、uint32_t、float、int64_t、uint64_t 五种数据类型 - 使用 MockCPP 对底层硬件指令函数进行 mock 验证 ## 关联的Issue https://gitcode.com/cann/asc-devkit/issues/978 ## 测试 - 编译通过:cmake --build build --target ascendc_ut_c_api_ascend950pr_9599_AIV -j8 - 单元测试通过:使用 --gtest_filter 过滤条件运行,11 个 atomic 操作共 55 个用例全部 PASSED ## 文档更新 无 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 ```请具体描述 See merge request: cann/asc-devkit!3041 | 4 个月前 | |
add header comments Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !3287 merge fixutf into master add header comments Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 scripts/presmoke/tests 下 7 个 Python 测试文件补充文件头 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 文件头补充 See merge request: cann/asc-devkit!3287 | 4 个月前 | |
Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Co-authored-by: leozjr<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !3041 merge master into master Ascend 950PR/Ascend 950DT CAPI 新增支持标量 atomic 计算 Created-by: leozjr Commit-by: zhangjiru;leozjr Merged-by: cann-robot Description: ## 描述 将标量计算 atomic 操作 C API 从 SIMT 层迁移至 npu_arch_3510 (A5) 平台,并补充完整的单元测试。 **标量接口迁移到A5:** - 新增 11 个 atomic 操作的 impl 实现头文件( asc_atomic_add/sub/or/xor/and/max/min/inc/dec/exch/cas) - 新增 scalar_compute_impl.h 统一入口头文件,包含所有标量计算实现 - 在 include/c_api/scalar_compute/scalar_compute.h 中补充接口声明 - 更新 device_atomic_functions.h 和 device_atomic_functions_impl.h 适配迁移 - 为上述 11 个 atomic 操作各新增一个 UT 文件 - 每个 UT 覆盖 int32_t、uint32_t、float、int64_t、uint64_t 五种数据类型 - 使用 MockCPP 对底层硬件指令函数进行 mock 验证 ## 关联的Issue https://gitcode.com/cann/asc-devkit/issues/978 ## 测试 - 编译通过:cmake --build build --target ascendc_ut_c_api_ascend950pr_9599_AIV -j8 - 单元测试通过:使用 --gtest_filter 过滤条件运行,11 个 atomic 操作共 55 个用例全部 PASSED ## 文档更新 无 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 ```请具体描述 See merge request: cann/asc-devkit!3041 | 4 个月前 | |
[fix]:在a5上适配sanitizer编译开关 Co-authored-by: huxj153<huxiujuan@huawei.com> # message auto-generated for no-merge-commit merge: !3140 merge f/sanitizer into master [fix]:在a5上适配sanitizer编译开关 Created-by: huxj153 Commit-by: huxj153 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在a5上适配sanitizer编译开关 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3140 | 4 个月前 | |
fix oat pre-commit macos compatibility Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3193 merge opt_ci_job into master fix oat pre-commit macos compatibility Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 完善 asc-devkit 的 pre-commit/OAT 合规检查链路,并修复当前 OAT 扫描暴露的问题。 主要改动: - 完善本地 pre-commit 配置:保留基础检查、clang-format、ruff、codespell 与本地 oat-check hook。 - 删除重复的 typos 拼写检查,避免与 codespell 功能重叠并维护两套专有词白名单。 - 修复 scripts/oat_check.sh 在 macOS/BSD 环境下的兼容性,避免依赖 GNU sed 行为。 - 使用 oat-py 作为 OAT 扫描入口,并在 .devcontainer/requirements.txt 中补充 oat-py>=1.0.0。 - 增强 oat-check 结果判断:同时汇总并拦截 Invalid File Type、License Header Invalid、Copyright Header Invalid。 - 修复 pre-commit 分批执行时 oat_reports/result.txt 统计不完整的问题,按同一次扫描聚合多个 batch 的结果。 - 修正 OAT 策略范围:将不需要 license/copyright header 的文件类型放入 defaultPolicyFilter/copyrightPolicyFilter,并清理当前仓库匹配数量为 0 的过滤项。 - 修复 OAT Invalid File Type 问题:过滤 *.png、.clangd、SWSCRL.crl 等允许的二进制/工具配置文件。 - 修复 OAT License Header Invalid / Copyright Header Invalid 问题:补齐或修正相关测试、样例和脚本文件的 CANN license/copyright header。 - 已撤回误带入的 clang-format 格式化差异,最终 C/C++ 相关文件只保留合规文案修复。 ## 关联的Issue 无。 ## 测试 已完成以下验证: - sh -n scripts/oat_check.sh - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("OAT.xml")' - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh - pre-commit run oat-check --all-files - Files Checked: 14140 - Runs Aggregated: 10 - Invalid File Type Total Count: 0 - License Header Invalid Total Count: 0 - Copyright Header Invalid Total Count: 0 - OAT filter 命中审计:defaultPolicyFilter、copyrightPolicyFilter、binaryFileTypePolicyFilter 均为 zero_match=0 - bash scripts/oat_check.sh .clangd:通过,确认 .clangd 不再被误判为非法二进制文件 - bash scripts/oat_check.sh OAT.xml scripts/oat_check.sh .pre-commit-config.yaml:通过,确认增量 OAT 检查正常 - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh:通过,确认删除 typos 后变更文件仍通过提交钩子 - git diff --check - 远端 GitCode hook 检查通过 说明:未声明 pre-commit run --all-files 全量通过;当前全仓 codespell 会扫出既有拼写问题,本 PR 只验证变更文件范围的 pre-commit 和全量 OAT。 ## 文档更新 无用户文档更新。 本 PR 仅涉及 pre-commit/OAT 检查配置、devcontainer 依赖和合规修复;未修改面向用户的使用文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3193 | 4 个月前 | |
feat(devx): improve clangd support for AscendC .asc/.aicpu files Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !1633 merge clangd_opt into master feat(devx): improve clangd support for AscendC .asc/.aicpu files Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次主要优化 AscendC 的 clangd 开发体验:统一 .clangd 到 /usr/local/Ascend/cann 软链路径;补充 .aicpu 解析支持(与 .asc 一致);收敛 clangd 宏与诊断抑制规则以减少专有语法误报;同时更新 .vscode,.devcontainer,README,默认以 clangd 为主进行代码解析,并关闭 cpptools 的 IntelliSense 以减少双引擎冲突。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!1633 | 6 个月前 | |
docs: add ASC document contributing and design rules Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !2985 merge doc_dfx_design into master docs: add ASC document contributing and design rules Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: ## 描述 补充Ascend C编程资料的贡献指南以及编程资料设计原则 ## 关联的Issue 关联Issue 886:https://gitcode.com/cann/asc-devkit/issues/886 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2985 | 4 个月前 | |
add missing scripts Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3177 merge update_presmokev2 into master add missing scripts Created-by: zhangyujia77 Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补齐 presmoke v2 看护入口及固定调度一致性校验,避免固定 schedule 与当前可运行 case 集合不一致时静默少跑。 本次主要补充: - 补齐 run_presmoke_v2.sh 中的固定调度严格校验开关,默认全量看护开启。 - 在 Python CLI 中增加 fixed schedule 覆盖检查,发现 schedule-only、unscheduled planned、重复条目时给出明确错误。 - 补齐 01_simd_cpp_api/04_advanced_api/10_math/log 的 generated runner,并避免该 runner 被通用 ignore 规则漏掉。 - 增加 910B NPU 固定顺序、manifest 与 runner 文件存在性的一致性测试。 - 单 case / filter / exclude 调试场景不启用严格覆盖检查,避免影响手动定位。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成以下验证: - test_scheduler.py 相关单测通过。 - 910B NPU strict dry-run planned case 数为 171,且包含 log 用例。 - 910B 单跑 01_simd_cpp_api/04_advanced_api/10_math/log 通过,JUnit 中生成 log [npu] testcase 和对应日志。 - bash -n scripts/run_presmoke_v2.sh 通过。 - git diff --check 通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 scripts/presmoke/README.md,补充固定顺序严格覆盖检查说明。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3177 | 4 个月前 | |
Format according to clang-format rules Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !3282 merge update_clang_format into master Format according to clang-format rules Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 本 PR 更新 clang-format 的 pre-commit 检查范围,并对新增纳入范围的样例代码执行一次全量格式化。 主要改动: - 调整 .pre-commit-config.yaml 中 clang-format 的文件匹配范围。 - 对 examples/ 下当前纳入 clang-format 范围的 C/C++/ASC 代码执行全量格式化。 - 对 .agent/tests/skills/asc-api-ut-gen/golden 下的 C++ golden 文件执行格式化。 - 同步调整 asc-api-ut-gen 的生成模板,使 AIV/AIC 生成结果直接匹配格式化后的 golden,避免只改 golden 导致生成器测试 diff 失败。 - 修正 asc-api-ut-gen 生成模板中的 copyright 头格式和参数化 gtest 生成格式。 ## 关联的Issue 无 ## 测试 已执行: - pre-commit run clang-format --all-files:通过 ## 文档更新 无 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式化 See merge request: cann/asc-devkit!3282 | 4 个月前 | |
更新首页Latest News,移动历史News到CHANGELOG.md Co-authored-by: gao_dafa<gaoyue6@huawei.com> # message auto-generated for no-merge-commit merge: !1606 merge master into master 更新首页Latest News,移动历史News到CHANGELOG.md Created-by: gao_dafa Commit-by: gao_dafa Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、更新根目录README,添加330新改动 2、新增CHANGELOG.md,并将历史特性移动到CHANGELOG.md,后续特性在CHAGNELOG.md体现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成文档基础问题扫描 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1、更新README.md 2、新增CHANGELOG.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!1606 | 6 个月前 | |
docs: add English translation for power README Co-authored-by: ai_xin<aixin2@hisilicon.com> # message auto-generated for no-merge-commit merge: !2269 merge master into master docs: add English translation for power README Created-by: ai_xin Commit-by: ai_xin Merged-by: cann-robot Description: ## 描述 增加md文件的英文翻译文档。 ## 关联的Issue 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新了英文md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2269 | 5 个月前 | |
use cann-cmake intf_pub Co-authored-by: DragonBornHD84<huangduo4@hisilicon.com> # message auto-generated for no-merge-commit merge: !2805 merge dev4 into master use cann-cmake intf_pub Created-by: DragonBornHD84 Commit-by: DragonBornHD84 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用cmake仓提供的intf_pub ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> 关联Issue [#624](https://gitcode.com/cann/asc-devkit/issues/624) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2805 | 5 个月前 | |
docs: add ASC document contributing and design rules Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !2985 merge doc_dfx_design into master docs: add ASC document contributing and design rules Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: ## 描述 补充Ascend C编程资料的贡献指南以及编程资料设计原则 ## 关联的Issue 关联Issue 886:https://gitcode.com/cann/asc-devkit/issues/886 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2985 | 4 个月前 | |
docs: add ASC document contributing and design rules Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !2985 merge doc_dfx_design into master docs: add ASC document contributing and design rules Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: ## 描述 补充Ascend C编程资料的贡献指南以及编程资料设计原则 ## 关联的Issue 关联Issue 886:https://gitcode.com/cann/asc-devkit/issues/886 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2985 | 4 个月前 | |
Initial commit | 11 个月前 | |
fix oat pre-commit macos compatibility Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3193 merge opt_ci_job into master fix oat pre-commit macos compatibility Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 完善 asc-devkit 的 pre-commit/OAT 合规检查链路,并修复当前 OAT 扫描暴露的问题。 主要改动: - 完善本地 pre-commit 配置:保留基础检查、clang-format、ruff、codespell 与本地 oat-check hook。 - 删除重复的 typos 拼写检查,避免与 codespell 功能重叠并维护两套专有词白名单。 - 修复 scripts/oat_check.sh 在 macOS/BSD 环境下的兼容性,避免依赖 GNU sed 行为。 - 使用 oat-py 作为 OAT 扫描入口,并在 .devcontainer/requirements.txt 中补充 oat-py>=1.0.0。 - 增强 oat-check 结果判断:同时汇总并拦截 Invalid File Type、License Header Invalid、Copyright Header Invalid。 - 修复 pre-commit 分批执行时 oat_reports/result.txt 统计不完整的问题,按同一次扫描聚合多个 batch 的结果。 - 修正 OAT 策略范围:将不需要 license/copyright header 的文件类型放入 defaultPolicyFilter/copyrightPolicyFilter,并清理当前仓库匹配数量为 0 的过滤项。 - 修复 OAT Invalid File Type 问题:过滤 *.png、.clangd、SWSCRL.crl 等允许的二进制/工具配置文件。 - 修复 OAT License Header Invalid / Copyright Header Invalid 问题:补齐或修正相关测试、样例和脚本文件的 CANN license/copyright header。 - 已撤回误带入的 clang-format 格式化差异,最终 C/C++ 相关文件只保留合规文案修复。 ## 关联的Issue 无。 ## 测试 已完成以下验证: - sh -n scripts/oat_check.sh - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("OAT.xml")' - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh - pre-commit run oat-check --all-files - Files Checked: 14140 - Runs Aggregated: 10 - Invalid File Type Total Count: 0 - License Header Invalid Total Count: 0 - Copyright Header Invalid Total Count: 0 - OAT filter 命中审计:defaultPolicyFilter、copyrightPolicyFilter、binaryFileTypePolicyFilter 均为 zero_match=0 - bash scripts/oat_check.sh .clangd:通过,确认 .clangd 不再被误判为非法二进制文件 - bash scripts/oat_check.sh OAT.xml scripts/oat_check.sh .pre-commit-config.yaml:通过,确认增量 OAT 检查正常 - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh:通过,确认删除 typos 后变更文件仍通过提交钩子 - git diff --check - 远端 GitCode hook 检查通过 说明:未声明 pre-commit run --all-files 全量通过;当前全仓 codespell 会扫出既有拼写问题,本 PR 只验证变更文件范围的 pre-commit 和全量 OAT。 ## 文档更新 无用户文档更新。 本 PR 仅涉及 pre-commit/OAT 检查配置、devcontainer 依赖和合规修复;未修改面向用户的使用文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3193 | 4 个月前 | |
修复README里代码目录顺序和代码实际目录的不一致 Co-authored-by: hyolee<lihongbo14@huawei.com> # message auto-generated for no-merge-commit merge: !3265 merge master into master 修复README里代码目录顺序和代码实际目录的不一致 Created-by: hyolee Commit-by: hyolee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3265 | 4 个月前 | |
docs: add English translations for examples introduction README files Co-authored-by: ai_xin<aixin2@hisilicon.com> # message auto-generated for no-merge-commit merge: !3308 merge master into master docs: add English translations for examples introduction README files Created-by: ai_xin Commit-by: ai_xin Merged-by: cann-robot Description: ## 描述 增加样例README英文翻译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 examples下增加英文md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3308 | 4 个月前 | |
修正一些markdown文件的错误 Co-authored-by: hehongan<hehongan@h-partners.com> # message auto-generated for no-merge-commit merge: !736 merge exampl into master 修正一些markdown文件的错误 Created-by: hehongan Commit-by: hehongan Merged-by: cann-robot Description: 对应5个issue的内容: README.md,在impl和include目录下补充完整的目录结构说明,包括添加experimental、micro_api、simt_api的目录结构说明 SECURITY.md,修正【A-文件(夹)各场景权限管控推荐最大值】的跳转链接 examples/02_features/README.md,修正01_c_api、02_simt、03_micro_api的跳转链接,补充01_triple_chevron_notation、08_tiling的跳转链接 docs/api/README.md,删除modff、DEVICE_IMPL_OP_OPTILING、Tiling下沉的跳转链接 docs/asc_adv_api_contributing.md,设计API --- Tiling侧 --- 接口参数说明中,修正输入/输出类型 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> 关联Issue [#201](https://gitcode.com/cann/asc-devkit/issues/201) 关联Issue [#200](https://gitcode.com/cann/asc-devkit/issues/200) 关联Issue [#199](https://gitcode.com/cann/asc-devkit/issues/199) 关联Issue [#198](https://gitcode.com/cann/asc-devkit/issues/198) 关联Issue [#197](https://gitcode.com/cann/asc-devkit/issues/197) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/asc-devkit!736 | 7 个月前 | |
docs: add English translation for power README Co-authored-by: ai_xin<aixin2@hisilicon.com> # message auto-generated for no-merge-commit merge: !2269 merge master into master docs: add English translation for power README Created-by: ai_xin Commit-by: ai_xin Merged-by: cann-robot Description: ## 描述 增加md文件的英文翻译文档。 ## 关联的Issue 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新了英文md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2269 | 5 个月前 | |
fix oat pre-commit macos compatibility Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !3193 merge opt_ci_job into master fix oat pre-commit macos compatibility Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 完善 asc-devkit 的 pre-commit/OAT 合规检查链路,并修复当前 OAT 扫描暴露的问题。 主要改动: - 完善本地 pre-commit 配置:保留基础检查、clang-format、ruff、codespell 与本地 oat-check hook。 - 删除重复的 typos 拼写检查,避免与 codespell 功能重叠并维护两套专有词白名单。 - 修复 scripts/oat_check.sh 在 macOS/BSD 环境下的兼容性,避免依赖 GNU sed 行为。 - 使用 oat-py 作为 OAT 扫描入口,并在 .devcontainer/requirements.txt 中补充 oat-py>=1.0.0。 - 增强 oat-check 结果判断:同时汇总并拦截 Invalid File Type、License Header Invalid、Copyright Header Invalid。 - 修复 pre-commit 分批执行时 oat_reports/result.txt 统计不完整的问题,按同一次扫描聚合多个 batch 的结果。 - 修正 OAT 策略范围:将不需要 license/copyright header 的文件类型放入 defaultPolicyFilter/copyrightPolicyFilter,并清理当前仓库匹配数量为 0 的过滤项。 - 修复 OAT Invalid File Type 问题:过滤 *.png、.clangd、SWSCRL.crl 等允许的二进制/工具配置文件。 - 修复 OAT License Header Invalid / Copyright Header Invalid 问题:补齐或修正相关测试、样例和脚本文件的 CANN license/copyright header。 - 已撤回误带入的 clang-format 格式化差异,最终 C/C++ 相关文件只保留合规文案修复。 ## 关联的Issue 无。 ## 测试 已完成以下验证: - sh -n scripts/oat_check.sh - python3 -c 'import xml.etree.ElementTree as ET; ET.parse("OAT.xml")' - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh - pre-commit run oat-check --all-files - Files Checked: 14140 - Runs Aggregated: 10 - Invalid File Type Total Count: 0 - License Header Invalid Total Count: 0 - Copyright Header Invalid Total Count: 0 - OAT filter 命中审计:defaultPolicyFilter、copyrightPolicyFilter、binaryFileTypePolicyFilter 均为 zero_match=0 - bash scripts/oat_check.sh .clangd:通过,确认 .clangd 不再被误判为非法二进制文件 - bash scripts/oat_check.sh OAT.xml scripts/oat_check.sh .pre-commit-config.yaml:通过,确认增量 OAT 检查正常 - pre-commit run --files .pre-commit-config.yaml OAT.xml scripts/oat_check.sh:通过,确认删除 typos 后变更文件仍通过提交钩子 - git diff --check - 远端 GitCode hook 检查通过 说明:未声明 pre-commit run --all-files 全量通过;当前全仓 codespell 会扫出既有拼写问题,本 PR 只验证变更文件范围的 pre-commit 和全量 OAT。 ## 文档更新 无用户文档更新。 本 PR 仅涉及 pre-commit/OAT 检查配置、devcontainer 依赖和合规修复;未修改面向用户的使用文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3193 | 4 个月前 | |
bugfix for docs Co-authored-by: 彭程<pengcheng40@hisilicon.com> # message auto-generated for no-merge-commit merge: !2168 merge master into master bugfix for docs Created-by: pengcheng1024 Commit-by: 彭程 Merged-by: cann-robot Description: ## 描述 1.Third_Party_Open_Source_Software_Notice文档名称问题修复 2.quickstart中下载链接更新 3.子流水线配置更新 ## 关联的Issue [#663](https://gitcode.com/cann/asc-devkit/issues/663) [#666](https://gitcode.com/cann/asc-devkit/issues/666) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2168 | 5 个月前 | |
fix: validate build help option combinations Co-authored-by: robellliu-dev<robell.liu@huawei.com> # message auto-generated for no-merge-commit merge: !2353 merge codex/function-quality-top3 into master fix: validate build help option combinations Created-by: gcw_oroHQZs3 Commit-by: robellliu-dev Merged-by: cann-robot Description: ## 描述 修复 #710 中记录的 build.sh help 参数预检 Top 3 功能/质量问题: - 修正 check_help_combinations 遍历变量,从 ${arg[@]} 改为 ${args[@]},确保 help 预检真正读取调用参数。 - 修正 --cov 组合判断:单独使用 --cov 时报错,-t/--test 或测试分片配合 --cov 时允许进入对应帮助输出。 - 将 -j8、-j16 等短参数带值形式归一化为 -j 后再做重复检测,避免同一次调用出现多个线程数配置。 ## 关联的Issue 关联Issue #710 ## 测试 已在本地执行并通过。由于 Windows checkout 下 build.sh 为 CRLF,直接 bash build.sh 会先撞换行问题;本次测试使用去除 CR 的 LF 临时副本验证脚本逻辑,不修改仓库文件。 bash bash -n <LF临时副本> bash <LF临时副本> -h --cov bash <LF临时副本> -h -t --cov bash <LF临时副本> -h -t --adv_test bash <LF临时副本> -h -j8 -j16 git diff --check git commit -m "fix: validate build help option combinations" 结果: - 语法检查通过,EXIT:0。 - -h --cov 正确报错,EXIT:1。 - -h -t --cov 正确输出 Test Options,EXIT:0。 - -h -t --adv_test 正确报互斥错误,EXIT:1。 - -h -j8 -j16 正确报重复 -j,EXIT:1。 - git diff --check 通过,无 whitespace error。 - 提交钩子执行 clang-format(无 C/C++ 文件,跳过)和 OAT Compliance Check;OAT 因 Windows 环境未安装 Maven 提示跳过后返回通过。 ## 文档更新 N/A ## 类型标签 - [x] fix: Bug 修复 - [ ] feat: 新功能 - [ ] perf: 性能优化 - [ ] refactor: 代码重构 - [ ] test: 新增或修改测试 - [ ] docs: 文档更新 - [ ] ci: CI/CD 配置修改 - [ ] revert: 回退 - [ ] chore: 其他,请具体描述 See merge request: cann/asc-devkit!2353 | 5 个月前 | |
refactor(c_api): 修改include路径为相对路径 Co-authored-by: Joey_guo<guojianyang@huawei.com> # message auto-generated for no-merge-commit merge: !3273 merge ipath into master refactor(c_api): 修改include路径为相对路径 Created-by: Joey_guo Commit-by: Joey_guo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 适配编译器修改,将include路径修改为相对路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地自验证通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!3273 | 4 个月前 | |
更新版本号 & 更新文档 Co-authored-by: DragonBornHD84<huangduo4@hisilicon.com> # message auto-generated for no-merge-commit merge: !2050 merge dev into master 更新版本号 & 更新文档 Created-by: DragonBornHD84 Commit-by: DragonBornHD84 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新版本号 & 更新文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> 关联Issue [#618](https://gitcode.com/cann/asc-devkit/issues/618) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了./README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2050 | 5 个月前 |
🔥Latest News
[2026/03] v9.0.0-beta.2 版本关键特性
🚀 关键特性
- Ascend 950PR支持SIMD编程模式,提供200+ API接口跨代兼容能力,可实现Atlas A2系列产品和Atlas A3系列产品算子平滑迁移。
- Ascend 950PR新增基于Reg的编程方式,提供Reg数据搬运、基础算术、规约计算、同步控制等90+ Reg编程接口。
- Atlas A2系列产品、Atlas A3系列产品、Ascend 950PR支持语言扩展层纯C接口,支持数组式内存分配与指针型计算接口,提供原生纯 C 编程体验。
- Ascend 950PR支持SIMD与SIMT混合编程,提供约700个SIMT API接口,包含warp、atomic、基本数学计算、类型转换等基础接口。
- Ascend 950PR支持通信高阶API的CCU通信接口,提供基于CCU的Allreduce,Allgather,Reducescatter,AlltoAll等主流通信原语;Matmul高阶API新增支持MXFP4/8低比特数据类型的矩阵运算,实现内存占用减半、算力吞吐倍增。
- Ascend 950PR新增及兼容支持样例共计约260个,包含SIMT样例、SIMD样例(框架类、基础API、高阶API、最佳实践等),并按照编程模型和样例类别对样例目录结构进行调整,提升样例目录结构的易读性。
- 融合编译与<<<>>>调用方式支持CPU模式以及SIM仿真模式。
📖 资料文档
- 新增90+ Reg编程接口API资料,Reg矢量计算API是面向RegBase架构开发的API,用户可通过该API直接对芯片中涉及Vector计算的寄存器进行操作,实现更大的灵活性和更好的性能。
- 新增SIMT快速入门、编程模型和算子实现介绍。
- 新增SIMD与SIMT混合编程模型、算子实现、性能优化介绍。
- 新增SIMT API资料章节。
- 新增兼容性迁移指南(220x架构版本迁移到351x架构版本)。
- 昇腾社区中,Ascend C算子开发新增可视化专区,通过视频呈现Cube和Vector算子的执行过程。
有关所有历史版本及更新的详细信息,请参阅CHANGELOG.md
🚀概述
Ascend C是CANN(Compute Architecture for Neural Networks)推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范。作为一门面向多场景的编程语言,Ascend C不仅致力于开放芯片完备编程能力支撑实现极致性能,同时通过多层级编程API设计,让您能够根据项目需求、团队技能与性能目标,灵活选择最合适的API,在开发效率与运行性能之间取得最佳平衡。
设计目标
Ascend C的设计目标可概括为 “高性能、完备性、易编程、可调试和兼容性”。其通过对C/C++语言标准进行最小化扩展,既支持基于指针的C语言开发习惯,也支持基于Tensor的C++编程范式,在支撑昇腾算子高效开发的同时,实现与现有生态的无缝衔接,保障开发体验的一致性。
我们秉持以下核心理念:
- 没有银弹:不同场景对性能、开发效率的要求各异,单一接口无法最优适配所有场景;
- 渐进式学习:新手可从易用性接口入手快速验证算法;专家则可向下钻取、精细调优,借助复杂接口特性充分挖掘硬件潜能。
API层级
Ascend C提供三类接口,均可实现底层的完备编程能力:
| API层级 | 语言 | 特点 | 目标用户 | 主要用途 |
|---|---|---|---|---|
| Tpipe/Tque框架编程API | C++ | 基于Tensor编程 通过Tpipe/Tque框架统一管理内存与同步 |
算子库开发者 | 基于框架自动管理同步与内存, 提升编程易用性 |
| 基础API | C++ | 基于Tensor编程,提供C++基础完备编程能力 通过MakeTensor/LocalMemoryAllocator分配Tensor,自主管理同步 |
算子库开发者 | 自主管理同步与内存 匹配C++Tensor开发习惯,支撑实现极致性能 |
| 语言扩展层 SIMD&SIMT API |
C | 基于指针编程,提供C基础完备编程能力 通过数组[]分配内存,自主管理同步 |
算子库开发者 | 自主管理同步与内存 匹配C语言开发习惯,支撑实现极致性能 |
此外,Ascend C提供高阶API和算子模板库以便提升算子开发效率。
| API层级 | 目标用户 | 主要用途 |
|---|---|---|
| 算子模板库 (CATLASS/ATVOSS等) | 算法开发人员 | 基于典型算子实现进行自定义扩展,满足特定场景高性能需求 |
| 高阶API | 算法开发人员 | 复用通用单核算法,快速完成算法验证 |
其总体逻辑架构图如下所示:

- 语言扩展层C API:纯C接口,支持数组分配内存、基于指针的计算接口,提供与业界一致的C语言编程体验,并开放芯片完备编程能力。Atlas A2/A3支持SIMD的纯C接口;Ascend 950PR/Ascend 950DT将支持与业界类似的SIMT编程能力、SIMD/SIMT混合编程能力;
- 基础API:单指令抽象的C++类库API,一般基于Tensor编程;逐步基于Layout完善Tensor编程能力;
- 高阶API:基于单核对常见算法进行抽象和封装,提供公共算法的实现;
- 算子模板库:基于模板提供算子的完整实现参考,简化Tiling开发,支持用户自定义扩展;
- Python前端PyAsc:PyAsc基于Python前端,提供芯片底层完备编程能力,并将逐步基于Layout完善Tensor编程能力,新增SIMT编程等能力,实现基于Python接口开发高性能算子;
如何选择多层级API进行算子开发
- 基于C/C++语言开发:详细请参考Ascend C多级API选择指南
- 基于Python语言开发,支撑完备编程能力,实现极致性能:推荐选用Ascend C Python前端PyAsc
- 基于Python语言开发,快速开发验证,易用性优先:推荐选用 PyPTO
🔍目录结构说明
本仓主要包含Ascend C编程API和必要的cmake编译脚本,是算子开发所需的核心模块,其目录结构如下:
├── cmake # Ascend C 构建源代码
├── docs # 项目文档介绍
├── examples # Ascend C API样例工程
├── impl # Ascend C API接口实现源代码
│ ├── adv_api # Ascend C 高阶API实现源代码
│ ├── aicpu_api # Ascend C AI CPU API实现源代码
│ ├── basic_api # Ascend C 基础API实现源代码
│ ├── c_api # Ascend C 语言扩展层C API实现源代码
│ ├── simt_api # Ascend C SIMT API实现源代码
│ ├── tensor_api # Ascend C TENSOR API实现源代码
│ └── utils # Ascend C 工具类实现源代码
├── include # Ascend C API接口声明源代码
│ ├── adv_api # Ascend C 高阶API声明源代码
│ ├── aicpu_api # Ascend C AI CPU API声明源代码
│ ├── basic_api # Ascend C 基础API声明源代码
│ ├── c_api # Ascend C 语言扩展层C API声明源代码
│ ├── simt_api # Ascend C SIMT API声明源代码
│ ├── tensor_api # Ascend C TENSOR API声明源代码
│ └── utils # Ascend C 工具类声明源代码
├── scripts # 打包相关脚本
├── tests # Ascend C API的UT用例
└── tools # Ascend C 工具源代码
⚡️快速入门
若您希望快速体验项目的构建和算子样例的执行,请访问如下文档获取简易教程。
🧰clangd/IDE 支持
-
安装 clangd(推荐 15+,以Ubuntu操作系统为例)以及VSCode插件clangd
sudo apt install -y clangd-15 -
配置本地VSCode的
settings.json(示例){ "clangd.path": "/usr/bin/clangd", "clangd.arguments": [ "--background-index=0", "--clang-tidy=0" ], "C_Cpp.intelliSenseEngine": "disabled" } -
在项目根目录下配置
.clangd(示例)完整.clangd文件在本目录下给出,其中涉及 CANN 头文件目录需自行替换实际安装位置,.clangd中默认为/usr/local/Ascend.CompileFlags: Add: - "-std=c++17" - "-stdlib=libstdc++" - "-D__NPU_ARCH__=2201" - "-DASCENDC_CPU_DEBUG=1" ... --- If: PathMatch: ".*\\.(asc|aicpu)$" CompileFlags: CompilationDatabase: None Add: - "-x" - "c++" Diagnostics: Suppress: - "attributes_not_allowed" - "decomp_decl_template" - "ignored_attributes" - "unknown_type_name" - "undeclared_var_use" - "invalid_token_after_toplevel_declarator" - "missing_type_specifier" - "typename_nested_not_found" - "redefinition" -
重启clangd(VSCode: Command Palette -> "Clangd: Restart language server")
-
💡 关于 ASC 语言语法高亮、代码跳转的支持,如有任何建议或改进意见,欢迎社区开发者积极反馈!
📖相关资源
-
编程指南
文档 说明 Ascend C 编程指南 基于昇腾AI硬件,使用Ascend C编写算子程序,开发自定义算子。 Ascend C 实践参考 基于已完成开发的Ascend C算子,介绍如何进一步优化算子性能。 Ascend C API列表 Ascend C SIMD&SIMT API,包括语言扩展层C API、C++类库基础API和高阶API Ascend C 样例 Ascend C API关键特性介绍样例,包括AICore SIMD&SIMT、AICPU等 Ascend C 编程指南(鸿蒙) 基于麒麟AI硬件,使用Ascend C编写算子程序,开发自定义算子。 -
贡献指南
文档 说明 CANN 社区贡献指南 CANN社区Issue、PR等通用处理流程 ASC-DevKit贡献指南 Ascend C API、资料与样例等贡献指南 -
其他
文档 说明 Ascend C Meetup材料 Ascend C对外宣传的PPT材料,包括950新增特性等 Ascend C Wiki Ascend C技术宣传文章等 CANN-Learning-Hub Ascend C算子开发在线全流程教程 Ascend C Ops Samples Ascend C 算子如何逐步实现高性能样例仓