AGENTS.md【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge本文件为 agent 在此代码仓库中工作时提供指导。项目概述GE (Graph Engine) 是华为 CANN (Compute Architecture for Neural Networks) 的图引擎 - 面向昇腾 AI 处理器的高性能图编译器和执行器。GE 提供图优化、多流并行执行、内存复用优化和模型下沉等能力。关键目录目录用途api/公共 API 接口ACL、ATC、session、Python 绑定base/基础组件图结构、工具、主机 CPU 引擎compiler/图编译分析器、引擎、图编译器、算子编译器runtime/运行时执行V1静态执行器、V2动态执行器RT2.0dflow/分布式流框架LLM 数据分发、UDFparser/模型格式解析器ONNX、PB、Caffe、MindSporegraph_metadef/图元数据定义和算子注册tests/综合测试套件UT、ST、基准测试examples/使用示例和样例构建命令基础构建# 构建所有组件ge_compiler、ge_executor、dflow bash build.sh # 构建特定组件 bash build.sh --ge_compiler # 构建编译器包 bash build.sh --ge_executor # 构建执行器包 bash build.sh --dflow # 构建 dflow 包构建选项bash build.sh -j16 # 16个并行线程默认8 bash build.sh --build_typeDebug # Debug 构建默认Release bash build.sh --verbose # 详细输出 bash build.sh --asan # 启用 AddressSanitizer bash build.sh --cov # 启用代码覆盖率 bash build.sh --output_pathPATH # 设置自定义输出路径第三方依赖bash build_third_party.sh测试DT 测试开发使用技能:ge-dt-developer适用场景: 编写、新增 UT/ST 测试用例。GE 单元测试 / 系统测试使用技能:ge-dt-runner适用场景: 编译和运行 GE 项目的单元测试(UT)和系统测试(ST)。清理构建产物非必要不清理。尽量使用增量编译能省90%编译时间rm -rf build_ut/ build_st/ output/ build/ build_out/ cov/ build_cmake_gcov/需求开发与新增功能触发词新增功能/需求/特性、开发新功能/需求/特性、实现功能/需求/特性使用技能:superpower brainstorming skill架构文档加载重要 在探索仓库/项目、回答问题、修改代码、输出设计文档、需求Spec或做代码检视时根据下表加载对应文档。每个文档只需加载一次匹配触发词、涉及目录或场景中任意一条即加载。同时修改了代码后要更新docs/architecture/features/和docs/architecture/modules下的对应文档。文档触发词涉及目录architecture.md架构总览、整体设计、GE介绍、系统架构、编译优化、插件扩展首次了解项目时ascend-ir.mdAscendIR、图结构、算子注册、Anchor、DAGbase/、inc/图结构相关compiler.md编译器、优化pass、融合、引擎分区、算子编译compiler/非 memory/split/stream 子目录runtime.md动态运行执行器、模型加载、模型执行、Hybrid、v2架构runtime/整体架构层面datadump.mddump、溢出、落盘、datadump、异常dumpcommon/dump/、runtime/*/dump/external_weight.md外置权重、external weight、FileConstant、权重分离、权重落盘仅使用触发词constant_folding.md常量折叠、constant folding、常量折叠优化、常量表达式求值*constant_folding*dynamic_gear.md动态分档、dynamic gear、档位、动态batch、动态分辨率、dynamic_dimscompiler/graph/preprocess/、compiler/graph/passes/multi_batch/、runtime/v1/executor/memory_conflict.md内存冲突、内存排布冲突、读写冲突、Inplace冲突、子图地址隔离compiler/graph/passes/memory_conflict/、mem_rw_conflict_optimize.cc、compiler/graph/optimize/mem_layout_conflict_optimize/、mem_inplace.ccmodel_cache.md模型缓存、model cache、编译缓存、OM缓存、JIT缓存*model_cache*profiling.mdprofiling、性能分析、性能采集、msprof、性能调优*profiling*so_in_om.mdSO in OM、算子打包、so打包、自包含模型、算子依赖*op_so_store*tensormove_delete.mdTensorMove消除、TensorMove删除、冗余拷贝消除*tensor_move_delete*variable_manager.md变量管理、Variable、变量内存、VarRef、变量生命周期、常量、FileConstant、外置权重*var_manager*、*variable_optimize*zero_copy.md零拷贝、zero copy、模型输入/输出、用户输入/输出、用户内存/地址*zero_copy*concat_no_task.mdConcat No Task、concat优化、连续内存拼接、虚拟算子、不生成Task*concat_notask*ge_local_operator.mdGE Local算子、本地算子、GeLocal引擎、NoOp、GeDeletedOp、PhonyConcat、PhonySplit*local_engine*、*ge_local*engine.md引擎、Engine、引擎选择、引擎注册、引擎分区、EnginePlacer、EnginePartitioner、DNNEngine、OpsKernelInfoStorecompiler/engines/、*engine_placer*、*dnnengine*tiling_sink.mdTiling下沉、tiling sink、AICPU Tiling、tiling_schedule_optimize*tiling_sink*、*fe_gentask_utils*graph_spliter.md图拆分、Graph Split、动静拆分、DynamicShapePartitioner、EnginePartitioner、cluster、PartitionedCallcompiler/graph/partition/、*dynamic_shape_partition*known_shape_executor.md静态执行器、Known Shape Executor、Task Sink、DavinciModel、地址刷新、模型下沉runtime/v1/graph/load/model_manager/unknown_shape_executor.md动态执行器、Unknown Shape Executor、RT2.0、Lowering、ExecuteGraph、ModelV2Executor、动态shape执行runtime/v2/、runtime/v1/hybrid/executor/stream_allocator.md流分配、stream、多流、流复用、event同步、流激活compiler/graph/build/stream/infer_shape.mdInferShape、Shape推导、OriginShape、StorageShape、动态Shape、符号化推导*infer_shape*、*symbolic_shape*infer_format.md格式推导、Format推导、InferFormat、OriginFormat、StorageFormat、TransData、格式传播*format_refiner*、*format_optimize*关键特性设计原则和软件约束触发词涉及目录memory-constraints.md显存、内存复用、block_mem、allocator、零拷贝、连续内存、内存排布冲突、内存释放compiler/graph/build/memory/、compiler/graph/optimize/mem_layout_conflict_optimize/rt2_runtime.mdRT2、动态shape、rt2 executor、hybrid执行runtime/v2/known_shape_runtime.md静态shape、known shape、davinci model、sink模式、地址刷新runtime/v1/graph_split.md图拆分、切图、cluster、动态图拆分、执行器选择compiler/graph/split/stream_allocator.md流分配、stream、多流、流复用、event同步、流激活compiler/graph/build/stream/graph_metadef.md图基础结构graph_metadef/开发规范gitcode pr/issue 操作.claude/skills/default-skills/SKILL.md代码检视检查项Code Review Checklist触发词检视代码检视pr使用技能:ge-code-reviewer设计文档检查项Design Document Checklist触发词设计文档、设计spec、spec输出、design document、设计方案输出、brainstorming 输出文档、写入设计文档、写spec、写设计、保存spec、save spec、save design、写入 docs/superpowers/specs、设计方案、架构设计、技术方案任何输出设计文档/spec的场景包括但不限于 superpowers brainstorming skill、用户直接要求写设计文档、输出设计方案必须先读取模板文件 [docs/guidelines/design_document_template.md]然后按照模板格式输出。模板中的每个章节都必须覆盖。即使 superpowers skill 有自己的格式要求也要以本模板为准。同时必须逐项检查以下内容跨特性交叉影响cross-feature-check设计方案涉及的所有模块/目录必须先读取 cross_feature_check.md按其指引逐场景分析。按 cross_feature_check.md 中的场景表逐项评估是否存在遗漏特性/场景并在设计文档中明确说明关键特性设计原则和软件约束根据设计方案涉及的目录加载上表关键特性设计原则和软件约束中对应的架构文档确保设计方案与已有约束一致。如需突破已有约束必须明确说明原因和影响范围示例输出格式### 设计文档检查结果 - [x] 跨特性交叉影响已按 cross_feature_check.md 逐场景分析 方案涉及 runtime/v2/ 和 compiler/graph/build/memory/ 已检查 rt2_runtime.md 和 memory-constraints.md方案与现有内存模型兼容 不影响 RT2 动态 shape 执行流程 - [x] 关键特性设计原则已加载 rt2_runtime.md方案遵循 hybrid 执行约束 无突破已有设计原则代码风格遵循 Google 开源代码规范环境要求GCC 7.3.xPython 3 3.9.x需额外pip3 install coverageCMake 3.16.0推荐 3.20.0需要安装 CANN Toolkit第三方库protobuf、grpc、boost、gtest 等语言使用中文回答问题编码前先思考不要想当然。不要掩饰困惑。把权衡摆在明面上。实施前明确陈述你的假设。如果不确定就问。如果存在多种理解全部列出来——不要默默选一个。如果有更简单的方案说出来。必要时提出反对意见。如果有不清楚的地方停下来。指出困惑之处。提问。简洁优先用最少的代码解决问题。不做任何推测性设计。不实现超出需求的功能。不为一次性代码做抽象。不添加未经要求的灵活性或可配置性。不为不可能发生的场景做错误处理。如果你写了200行而50行就够了重写。问问自己高级工程师会认为这太复杂了吗 如果是就简化。精准修改只改必须改的。只清理自己弄乱的。编辑现有代码时不要改进相邻的代码、注释或格式。不要重构没有问题的东西。匹配既有风格即使你会用不同的写法。如果你注意到无关的死代码提出来——不要删除它。当你的修改产生了孤立代码时删除因你的修改而变得未使用的导入/变量/函数。不要删除之前就存在的死代码除非被要求。检验标准每一处改动都应该能追溯到用户的请求。目标驱动执行定义成功标准。循环验证直到达标。将任务转化为可验证的目标添加校验 → 为无效输入编写测试然后让它们通过修复bug → 编写能复现该bug的测试然后让它通过重构X → 确保重构前后测试都通过对于多步骤任务简要说明计划1. [步骤] → 验证: [检查项] 2. [步骤] → 验证: [检查项] 3. [步骤] → 验证: [检查项]明确的成功标准让你能够独立循环迭代。模糊的标准让它能用则需要不断沟通确认。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考