新闻详情

新闻详情

首页 / 资讯中心 / 详情

昇腾/GE基于fallback形式下发算子

发布时间:2026/9/10 20:39:05来源:尧图网络
昇腾/GE基于fallback形式下发算子
基于fallback形式下发算子【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge简介Atlas 200I/500 A2 推理产品不支持该特性。GE提供了两种常规的模型调度模式下沉调度和Host调度用于实现Host和Device之间的高效协同。下沉调度模式通常适用于静态shape模型由于输入tensor shape固定不变可以在编译阶段完成内存编排和Tiling计算因此可以将模型中的算子以整图形式下发到Device上执行时只需在Host侧下发一个模型执行的Task即可触发模型在Device上调度执行从而提升模型调度性能。Host调度模式通常适用于动态shape模型由于输入tensor的shape不确定必须在上一个算子完成shape推导后才能确定下一个算子的输入shape等信息因此整个模型无法下沉执行通常需要将每个算子Kernel逐一下发到Device执行。基于fallback形式下发算子属于Host调度模式的一种用户可以在Host侧通过fallback函数执行算子例如可直接调用aclnnXX单算子API执行算子。用户仅需在算子开发过程中调用Ascend C的EnableFallBack接口即可自动生成fallback函数供GE自动回调fallback函数的主要任务就是将GE的输入输出及属性转换为aclnnXX单算子API所需的参数格式然后调用aclnnXX接口执行算子。图 1常规Host调度模式和fallback下发的对比 ![图示](https://raw.gitcode.com/cann/ge/raw/243ea8d2d8f7623dd210c0867dde5782ec5594a9/docs/zh/user_guides/graph_dev/figures/compare.png 常规Host调度模式和fallback下发的对比?utm_sourcegitcode_repo_files)适用场景不支持离线推理场景仅适用于训练或在线推理场景。通常建议针对动态shape模型中的多Kernel算子启用fallback下发。主要原因是在静态shape场景下aclnnXX接口包含Host操作无法以整图形式下发需要断图后以子图形式下发这可能会对性能产生较大影响。在极少数情况下算子开发者为了实现算子的极致性能优化开发了多Kernel算子如昇腾内置的Matmul和MC²等算子。这类算子对应多个Kernel实现在执行时需要Launch多个Kernel。由于Kernel的数量不确定GE无法按照上述常规方式统一处理因此需要通过fallback方式下发算子。对于单Kernel算子启用fallback下发方式可能会导致性能下降。目前基于Ascend C自定义算子工程自动生成的aclnnXX接口均为单Kernel算子API因此不建议用户针对这些算子启用fallback下发。实现原理动态shape模型中多Kernel算子启用fallback下发的流程如下图所示。图 2动态shape模型中的多Kernel算子下发执行流程 ![图示](https://raw.gitcode.com/cann/ge/raw/243ea8d2d8f7623dd210c0867dde5782ec5594a9/docs/zh/user_guides/graph_dev/figures/dynamic_shape_multi_kernel_exec_flow.png 动态shape模型中的多Kernel算子下发执行流程?utm_sourcegitcode_repo_files)fallback函数的主要任务是将GE的输入输出及属性转换为aclnn单算子API所需的参数格式然后通过调用aclnnXX接口执行算子。以concat算子为例fallback函数的格式为static graphStatus ConcatExecuteFunc(OpExecuteContext* host_api_ctx)OpExecuteContext指针入参中主要包含计算fallback所需的信息例如输入输出的shape和datatype等具体请参考《基础数据结构和接口》gert命名空间OpImplSpaceRegistryV2类。用户无需手动实现fallback函数在算子原型注册过程中只需调用EnableFallBack接口系统将自动生成fallback函数并注册到GE。使用指导算子开发阶段用户在算子原型注册过程中调用Ascend C的EnableFallBack接口自动生成fallback函数class CustomOp : public OpDef { public: CustomOp(const char* name) : OpDef(name) { // 定义算子的输入/输出信息包括是否必选、输入输出支持的DataType、Format this-Input(x).ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); this-Input(y).ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); this-Output(z).ParamType(REQUIRED).DataType({ge::DT_FLOAT}).Format({ge::FORMAT_ND}); // 注册Shape推导函数 this-SetInferShape(ge::InferShapeFunc); this-SetInferDataType(ge::InferDataTypeFunc); // 通过AddConfig注册算子支持的AI处理器型号 this-AICore().AddConfig(ascendxxx); this-EnableFallBack(); } }; OP_ADD(CustomOp);当前fallback函数支持support_aclnn和aclnn_only两种调用模式可通过ExtendCfgInfo接口的aclnnSupport.value参数进行配置详细可参见《Ascend C API》。support_aclnn此模式下静态Shape场景中该算子通过模型下沉执行动态Shape场景则在Host侧调用fallback函数下发算子。如果调用了EnableFallBack则默认采用该模式。aclnn_only此模式下动静态Shape场景中该算子均以fallback形式下发。不建议用户使用该模式后续版本将被废弃。基于GE图模式进行训练或在线推理时会自动回调fallback函数执行相关算子。功能调试support_aclnn模式和aclnn_only模式下的关键日志为xxx, setting fallback attribute【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

遗传算法在风光储混合发电系统优化配置中的应用 2026/9/10 21:12:09

遗传算法在风光储混合发电系统优化配置中的应用

1. 混合发电系统优化配置的工程挑战在可再生能源发电系统的实际工程设计中,如何合理配置风力发电机、光伏阵列和蓄电池组的容量比例,一直是困扰系统工程师的核心难题。传统经验公式法往往存在两个致命缺陷:一是无法准确反映当地气候数据的时序…

阅读更多 →
工业软件人才缺口大:计算机专业就业新方向 2026/9/10 21:12:09

工业软件人才缺口大:计算机专业就业新方向

1. 行业现状与人才需求分析 计算机专业毕业生近年来确实面临着前所未有的就业压力。根据第三方机构统计数据显示,2023年全国计算机相关专业应届毕业生人数突破120万,而传统互联网大厂的校招岗位数量却同比缩减了近40%。这种供需失衡导致大量计算机专业学…

阅读更多 →
AI论文写作工具评测与毕业论文高效指南 2026/9/10 21:12:09

AI论文写作工具评测与毕业论文高效指南

1. 毕业论文写作痛点与AI工具崛起写毕业论文大概是每个大学生最头疼的事情之一。从选题开题到文献综述,从实验设计到数据分析,再到最后的论文撰写和格式调整,整个过程就像一场马拉松,稍有不慎就会陷入"选题难、写作慢、查重高…

阅读更多 →
SpringBoot+Vue社区网格化管理平台设计与优化实践 2026/9/10 21:12:09

SpringBoot+Vue社区网格化管理平台设计与优化实践

1. 社区网格化管理平台的设计背景与核心价值 社区网格化管理是近年来基层社会治理的重要创新模式,它将传统社区划分为若干网格单元,通过信息化手段实现精细化管理。我去年参与某市智慧社区项目时,深刻体会到一套好的管理系统对提升基层工作效…

阅读更多 →
Gradio Button 组件技术解析:@gradio/button 的功能演进、源码实现与实战配置 2026/9/10 21:12:09

Gradio Button 组件技术解析:@gradio/button 的功能演进、源码实现与实战配置

Gradio Button 组件技术解析:gradio/button 的功能演进、源码实现与实战配置 【免费下载链接】gradio Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work! 项目地址: https://gitcode.com/GitHub_Trendi…

阅读更多 →
2026年AI开题报告工具评测与使用技巧 2026/9/10 21:09:08

2026年AI开题报告工具评测与使用技巧

1. 2026年AI开题报告工具全景概览开题报告作为学术研究的起点,其质量直接影响后续科研工作的展开。传统开题报告撰写往往需要耗费研究者大量时间在文献综述、框架搭建和格式调整上。2026年涌现的这批AI工具,正在从根本上改变这一现状。我实测了市面上主流…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞