ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

昇腾/GE Matmul算子普通属性构图样例指导

昇腾/GE Matmul算子普通属性构图样例指导 样例使用指导【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge1、功能描述本样例使用Matmul算子普通属性进行构图旨在帮助构图开发者快速理解普通属性的定义和使用2、目录结构python/ ├── src/ | └── make_matmul_graph.py // sample文件 ├── CMakeLists.txt // 编译脚本 ├── README.md // README文件 ├── run_sample.sh // 执行脚本3、使用方法3.1、准备cann包通过安装指导 环境准备正确安装toolkit和ops包设置环境变量 (假设包安装在/usr/local/Ascend/)source /usr/local/Ascend/cann/set_env.sh3.2、编译和执行注和 C/C构图对比Python构图需要额外添加 LD_LIBRARY_PATH 和 PYTHONPATH(参考sample中的配置方式)bash run_sample.sh -t sample_and_run_python该命令会自动生成ES接口编译sample程序生成dump图并运行该图执行成功后会看到[Success] sample 执行成功pbtxt dump 已生成在当前目录。该文件以 ge_onnx_ 开头可以在 netron 中打开显示输出文件说明执行成功后会在当前目录生成以下文件ge_onnx_*.pbtxt- 图结构的protobuf文本格式可用netron查看3.3、日志打印可执行程序执行过程中如果需要日志打印来辅助定位可以在bash run_sample.sh -t sample_and_run_python之前设置如下环境变量来让日志打印到屏幕export ASCEND_SLOG_PRINT_TO_STDOUT1 #日志打印到屏幕 export ASCEND_GLOBAL_LOG_LEVEL0 #日志级别为debug级别3.4、图编译流程中DUMP图可执行程序执行过程中如果需要DUMP图来辅助定位图编译流程可以在bash run_sample.sh -t sample_and_run_python 之前设置如下环境变量来DUMP图到执行路径下export DUMP_GE_GRAPH24、核心概念介绍4.1、构图步骤如下创建图构建器(用于提供构图所需的上下文、工作空间及构建相关方法)添加起始节点(起始节点指无输入依赖的节点通常包括图的输入(如 Data 节点)和权重常量(如 Const 节点))添加中间节点(中间节点为具有输入依赖的计算节点通常由用户构图逻辑生成并通过已有节点作为输入连接)设置图输出(明确图的输出节点作为计算结果的终点)4.2、普通属性Normal Attributes概念说明普通属性是算子的配置参数用于控制算子的行为属性值在构图时确定不会在运行时改变。构图 API 特点属性值必须在构图时确定不能是运行时变量如果使用默认值可以省略对应参数使用默认值或显式传入ES API 会根据属性类型进行类型检查确保传入的值类型正确例如 MatMul 算子原型如下所示ES 构图生成的API是MatMul()支持在 Python 层使用REG_OP(MatMul) .INPUT(x1, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16, DT_HIFLOAT8})) .INPUT(x2, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16, DT_HIFLOAT8})) .OPTIONAL_INPUT(bias, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) .OUTPUT(y, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16, DT_HIFLOAT8})) .ATTR(transpose_x1, Bool, false) .ATTR(transpose_x2, Bool, false) .OP_END_FACTORY_REG(MatMul)其对应的函数原型为函数名MatMul参数共 5 个依次为 x1 x2 bias transpose_x1 transpose_x2返回值输出 yPython API中Matmul(x1: Union[TensorHolder, TensorLike], x2: Union[TensorHolder, TensorLike], bias: Optional[Union[TensorHolder, TensorLike]] None, *, transpose_x1: bool False, transpose_x2: bool False) - TensorHolder:注 1、使用TensorLike类型表达输入以支持实参可以直接传递数值的情况【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表