# ascendc-high-level-api-helper **Repository Path**: Nicet/ascendc-high-level-api-helper ## Basic Information - **Project Name**: ascendc-high-level-api-helper - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 好的,这是对应的中文版 `README.md`。它与英文版内容保持一致,但使用了更符合中文开发者习惯的术语和表达。 --- # Ascend C 助手 [**English**](./README.md) | **中文** 一款为昇腾 Ascend C 开发者量身打造的 Visual Studio Code 必备扩展,旨在简化高阶 API 临时工作空间大小的计算。本工具提供了一种交互式的方式,让您可以在编辑器内直接查询 API、计算所需内存并测试功能。 ## 概述 计算 Ascend C 高阶 API 所需的 `max` 和 `min` 临时空间是一项频繁且关键的任务。本扩展通过以下方式将此过程自动化: - 提供一个交互式的命令面板界面。 - 在后台使用您本地的 CANN (异构计算架构) 工具链,动态生成并执行一个最小化的 C++ 项目。 - 将计算结果直接显示在 VS Code 中。 - 提供自定义 API 扩展和批量测试等高级功能。 这种方法确保了计算结果始终与您特定的 CANN 环境和昇腾 AI 处理器版本精确匹配,同时插件本身不捆绑任何库文件。 ## 功能特性 ### 1. 计算临时空间大小 本扩展的核心功能。它会引导您完成一个简单、分步式的流程: - **调用命令**: 打开命令面板 (`Ctrl+Shift+P`) 并运行 `Ascend C 辅助工具: 计算临时空间大小`。 - **选择昇腾 AI 处理器型号**: 输入目标昇腾 AI 处理器型号 (例如 `Ascend910B4`)。 - **选择 API**: 从动态加载的列表中选择您需要的高阶 API。 - **输入参数**: 为所选的 API 提供必要的参数,插件会对 Shape、数据类型等进行实时校验。 - **获取结果**: 插件计算并在通知中显示最大和最小临时工作空间的大小。 ### 2. 用户自定义 API 本扩展不局限于内置的 API 列表。您可以轻松地通过编辑用户专属的 `apis.json` 文件来扩展其功能。 - **打开并编辑**: 运行命令 `Ascend C 辅助工具: 打开用户 APIs 文件 (apis.json)`。 - **自定义**: 遵循现有的 JSON 结构,添加您自己的 API 定义。您的更改将立即生效。 ### 3. 恢复默认配置 如果您的自定义 `apis.json` 文件损坏,或者您希望恢复到插件的原始 API 集合,只需运行命令 `Ascend C 辅助工具: 重置用户 API 为默认配置`。 ### 4. 批量测试 使用一条命令即可验证您环境中所有可用的 API。 - **运行测试**: 执行 `Ascend C 辅助工具: 使用默认值测试全部 API`。 - **查看报告**: 插件将遍历每一个 API,使用其默认参数运行计算,并在“Ascend C 辅助工具”输出通道中记录每次运行的成功或失败信息。测试完成后会提供一份总结报告。 ## 环境要求 1. **Visual Studio Code**: 版本 1.75 或更高。 2. **CANN 工具包**: 您的系统中必须安装了有效的昇腾 CANN 工具包(无论是本地安装还是通过 SSH 连接的远程机器)。本扩展依赖于您 CANN 安装所提供的工具(如 `cmake`, `g++` 及相关库)。 3. **环境变量**: 扩展会尝试通过 `ASCEND_TOOLKIT_HOME` 环境变量来定位 CANN 工具包。如果未设置该变量,它将尝试使用默认安装路径 (例如 `/usr/local/Ascend/ascend-toolkit/latest`)。为获得最佳体验,请确保在您的环境中正确配置 `ASCEND_TOOLKIT_HOME`。 4. **构建工具**: C++ 编译器 (如 `g++`) 和 `cmake` 必须在系统的 PATH 中可用。这些工具通常随 CANN 工具包或标准的构建环境一同提供。 5. **Shell 环境**: 需要一个与 `bash` 兼容的 shell 来执行后端脚本。在 Windows 上,这通常由 [Git Bash](https://git-scm.com/downloads) 或 WSL (Windows Subsystem for Linux) 提供。 ## 扩展设置 本扩展目前不提供任何自定义的 VS Code 设置。所有配置都通过用户可编辑的 `apis.json` 文件进行。 ## 已知问题 - 初次计算可能会花费几秒钟,因为它涉及到一次完整的 `cmake` 和编译周期。后续的运行可能会因缓存而加快。 - 在 Windows 上,`bash` 可执行文件必须在系统的 `PATH` 环境变量中,以确保插件功能正常。 如有其他问题,请在我们的 [GitHub Issues 页面](https://github.com/your-repo/ascendc-helper/issues)提交。 ## 发布说明 ### 0.0.1 - 初始版本发布。 - 核心功能:交互式计算临时工作空间大小。 - 支持通过 `apis.json` 进行用户自定义 API。 - 提供打开和重置用户 API 文件的命令。 - 提供带有详细报告的批量测试功能。 --- ## 开发者参考 ### 工作原理 本扩展作为一个轻量级前端,负责编排您本地的 CANN 工具链。 1. **UI 交互**: VS Code 界面(使用 TypeScript 编写)收集用户输入(昇腾 AI 处理器型号、API、参数等)。 2. **代码生成**: 根据所选 API 在 `apis.json` 中的定义,扩展在系统临时目录中动态生成一个临时的 C++ 项目(包含 `main.cpp`, `CMakeLists.txt` 等)。 3. **执行**: 生成一个 `run.sh` 脚本并使用 `child_process.spawn` 执行。该脚本会加载 CANN 的 `setenv.bash` 环境变量,使用 `cmake` 编译 C++ 项目,并运行生成的可执行文件。 4. **结果解析**: 捕获可执行文件的标准输出(包含最大/最小临时空间大小),解析后展示给用户。 5. **清理**: 进程结束后,自动删除临时目录。 这种设计通过使用与开发者手动操作完全相同的工具,确保了最大的兼容性和准确性,同时提供了图形界面的便利。 --- **祝您享受更高效的 Ascend C 开发流程!**