CANN/GE DataFlow运行指南 # DataFlow运行【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge简介该章节将介绍如何构建并执行一张FlowGraph包含以下两种方式通过注解构图并执行即用户可以在UDF定义上添加装饰器pyflow会自动生成fnode构图函数从而用户可通过UDF定义进行构图使用更加便捷。通过API构图并执行即用户可以通过FlowNode相关的API直接构图。通过注解构图并执行通过注解构图并执行的流程如下所示。图1通过注解构图并执行 ![](https://raw.gitcode.com/cann/ge/raw/90b6b5f955453823e2ca13bfd6ecc1d7b12bb375/docs/zh/user_guides/dflow/dflow_dev/python/figures/通过注解构图并执行.png 通过注解构图并执行?utm_sourcegitcode_repo_files)示例代码如下。import dataflow as df import numpy as np df.pyflow def add(in0, in1): return in0 in1 # 系统初始化 options { ge.exec.deviceId:0, ge.experiment.data_flow_deploy_info_path:./data_flow_deploy_info.json, ge.socVersion: AscendXXX # 根据环境修改version } df.init(options) # 定义FlowData data0 df.FlowData() data1 df.FlowData() # 通过注解UDF生成FlowNode add_node add.fnode() # 构建FlowData和FlowNode的连边关系 add_out add_node(data0, data1) # 通过FlowOut构建FlowGraph dag df.FlowGraph([add_out]) # 根据图自动生成部署策略所有节点均部署在numa_config中的第1个设备上 # 如需修改需要注释掉下面这行代码并修改./data_flow_deploy_info.json文件内容 df.utils.generate_deploy_template(dag, ./data_flow_deploy_info.json) # 调用FlowGraph.feed填充输入 dag.feed({data0:np.array([[1, 2]], dtypenp.int32), data1:np.array([[2, 3]], dtypenp.int32)}) # 调用FlowGraph.fetch获取输出 print(dataflow fetch result:, dag.fetch()) # 打印dataflow fetch result: ([array([[3, 5]], dtypeint32)], 0) # 释放系统资源 df.finalize()通过API构图并执行通过API构图并执行的流程如下所示。图1通过FlowNode构图并执行 ![](https://raw.gitcode.com/cann/ge/raw/90b6b5f955453823e2ca13bfd6ecc1d7b12bb375/docs/zh/user_guides/dflow/dflow_dev/python/figures/通过FlowNode构图并执行.png 通过FlowNode构图并执行?utm_sourcegitcode_repo_files)示例代码如下。完整示例代码请参考sample_base。import dataflow as df import numpy as np # 系统初始化 options { ge.exec.deviceId:0, ge.experiment.data_flow_deploy_info_path:./data_flow_deploy_info.json, ge.socVersion: AscendXXX # 根据环境修改version } df.init(options) # 定义FlowData data0 df.FlowData() data1 df.FlowData() # 定义FuncProcessPoint实现Add功能并添加到FlowNode中 pp0 df.FuncProcessPoint(compile_config_pathconfig/add_func.json) add_node df.FlowNode(input_num2, output_num1) add_node.add_process_point(pp0) # 构建FlowData和FlowNode的连边关系 add_out add_node(data0, data1) # 通过FlowOut构建FlowGraph dag df.FlowGraph([add_out]) # 调用FlowGraph.feed_data填充输入 flow_info df.FlowInfo() dag.feed_data({data0:np.array([[1, 2]], dtypenp.int32), data1:np.array([[2, 3]], dtypenp.int32)}, flow_info) # 调用FlowGraph.fetch_data获取输出 print(dataflow fetch result:, dag.fetch_data()) # 释放系统资源 df.finalize()【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考