尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

cann/ge HCCL TP图Python样例

cann/ge HCCL TP图Python样例 样例使用指导【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge1、功能描述本样例演示如何使用HcomAllReduce算子集合通信进行构图旨在帮助构图开发者快速理解集合通信定义和使用该类型算子进行构图。2、目录结构python/ ├── src/ | └── make_pfa_hcom_graph.py // sample文件 ├── rank_table/ | ├── a2/ | | └── rank_table_2p.json // A2(d802) 2卡rank table配置(v1.0) ├── 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、编译和执行重要前提确保您的系统有至少2个可用的NPU设备平台支持说明A2 平台lspci | grep d802有输出脚本自动使用rank_table/a2/rank_table_2p.jsonA5 平台lspci | grep d806有输出脚本会报错退出不支持此形态其他平台当前版本暂不支持会在脚本中直接报错退出注和 C/C构图对比Python构图需要额外添加 LD_LIBRARY_PATH 和 PYTHONPATH(参考sample中的配置方式)使用方法bash run_sample.sh -t sample_and_run_python该命令会自动生成ES接口编译sample程序dump图到当前目录在2个NPU设备上并行运行TP图设备ID从 rank_table 自动读取注意事项脚本会通过lspci自动识别硬件并选择对应 rank table当前仅 A2 使用rank_table/a2/rank_table_2p.jsonA5 不支持此形态如需使用其他设备如2,3或4,5请修改对应平台目录下 rank table 文件中的device_id执行成功后会看到[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、多卡运行关键概念环境变量说明运行多卡示例时脚本会自动设置以下环境变量RANK_ID逻辑进程编号本示例中为 0 或 1DEVICE_ID物理设备ID本示例中为 0 或 1RANK_TABLE_FILErank table 配置文件路径当前仅 A2:rank_table/a2/rank_table_2p.jsonA5 不支持此形态关于RANK_TABLE_FILE、RANK_ID、DEVICE_ID的详细介绍可以参考 以a2为例:rank table配置资源信息GE 初始化配置config { ge.exec.deviceId: str(device_id), # 来自环境变量 DEVICE_ID ge.graphRunMode: 0, ge.exec.rankTableFile: rank_table_file, # 来自环境变量 RANK_TABLE_FILE ge.exec.rankId: rank_id # 来自环境变量 RANK_ID }4.3、TP图构图概念说明TPTensor Parallel图是指通过张量并行方式在多卡上运行的图结构。本样例演示了如何使用ES算子构建包含集合通信算子的TP图实现多卡间的数据同步和并行计算。HcomAllReduce 算子原型如下所示ES 构图生成的API是HcomAllReduce()支持在 Python 中使用REG_OP(HcomAllReduce) .INPUT(x, TensorType({DT_FLOAT, DT_INT32, DT_INT8, DT_INT16, DT_FLOAT16, DT_INT64})) .OUTPUT(y, TensorType({DT_FLOAT, DT_INT32, DT_INT8, DT_INT16, DT_FLOAT16, DT_INT64})) .REQUIRED_ATTR(reduction, String) .REQUIRED_ATTR(group, String) .ATTR(fusion, Int, 1) .ATTR(fusion_id, Int, -1) .OP_END_FACTORY_REG(HcomAllReduce)其对应的函数原型为函数名HcomAllReduce参数共 5 个依次为 x reduction group fusion可选默认1 fusion_id可选默认-1返回值输出 yPython API中HcomAllReduce(x: TensorHolder, *, reduction: str, group: str, fusion: int 1, fusion_id: int -1) - TensorHolder注 reduction、group为必选关键字参数fusion和fusion_id为可选参数具有默认值【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表