当前位置: 首页 > article >正文

CANN/hccl:自定义通信算子 - 点对点通信

自定义通信算子 - 点对点通信【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl样例介绍本样例展示如何基于 HCCL 通信编程接口开发 Send/Recv 点对点通信算子包含以下功能点基于 AICPU 通信引擎实现点对点通信算子支持自定义算子包的独立构建、独立部署目录结构├── CMakeLists.txt # 编译/构建配置文件 ├── op_host/ │ ├── send.cc # HcclSendCustom 算子实现源文件 │ ├── recv.cc # HcclRecvCustom 算子实现源文件 │ ├── load_kernel.cc # AICPU Kernel 在 Host 侧的加载逻辑 │ ├── launch_kernel.cc # AICPU Kernel 在 Host 侧的下发逻辑 │ └── utils.cc # 工具模块 ├── op_kernel_aicpu/ │ ├── libp2p_aicpu_kernel.json # AICPU Kernel 算子描述文件 │ ├── aicpu_kernel.cc # AICPU Kernel 实现逻辑 │ └── exec_op.cc # AICPU 算子编排逻辑 ├── inc/ │ ├── hccl_custom_p2p.h # 自定义 send/recv 算子接口头文件 │ ├── common.h # 公共类型头文件 │ └── log.h # 日志宏定义 ├── scripts/ │ └── hccl_custom_p2p_check_cfg.xml # 签名配置文件 └── testcase/ ├── main.cc # 样例实现源文件 └── Makefile # 编译/构建配置文件自定义算子编译工程依赖 HCCL 代码仓中的 cmake 配置和编译脚本 build.sh其中cmake 包含 CMake 配置、MakeSelf 打包配置等内容build.sh 是工程编译入口一、环境准备1. 环境要求本样例支持以下昇腾产品Atlas A3 训练系列产品 / Atlas A3 推理系列产品Atlas A2 训练系列产品2. 安装 CANN Toolkit 开发套件包参考 昇腾文档中心-CANN软件安装指南安装最新版本 CANN Toolkit 开发套件包。3. 配置环境变量设置CANN环境变量# 默认路径安装以root用户为例 source /usr/local/Ascend/cann/set_env.sh # 默认路径安装以非root用户为例 source $HOME/Ascend/cann/set_env.sh # 指定路径安装 source ${install_path}/cann/set_env.sh二、编译自定义算子包hccl代码仓提供了自定义算子编译打包工程该工程依赖代码仓中的如下文件├── build.sh # hccl代码仓根目录编译工程入口 ├── CMakeLists.txt # hccl代码仓根目录编译/构建配置文件 ├── cmake/ │ ├── config.cmake # CMake变量定义 │ ├── func.cmake # CMake函数定义 │ ├── package.cmake # 签名、打包函数定义 │ └── makeself_custom.cmake # MakeSelf打包逻辑 └── scripts/ ├── custom/install.sh # 自定义算子包安装脚本 └── sign/add_header_sign.py # AICPU 算子包签名脚本因此开发者首先需要下载hccl代码仓然后在代码仓根目录下执行build.sh进行编译通过custom_ops_path指定自定义算子工程路径# 下载hccl代码仓 git clone https://gitcode.com/cann/hccl.git # 编译自定义算子包 bash build.sh --vendorcust --opsp2p --custom_ops_path./examples/04_custom_ops_p2p其中--vendor参数表示自定义算子标识--ops参数表示自定义算子名称--custom_ops_path参数表示自定义算子工程路径三、安装自定义算子包自定义算子安装包在./build_out目录下通过--install参数进行安装./build_out/cann-hccl_custom_p2p_linux-arch.run --install --install-pathascend_cann_path其中arch是当前编译环境的系统架构ascend_cann_path是可选参数表示 CANN 软件包安装目录。默认为ASCEND_CUSTOM_OPP_PATH或ASCEND_OPP_PATH环境变量设置的路径自定义算子包安装信息如下头文件${ASCEND_HOME_PATH}/opp/vendors/cust/include/hccl_custom_p2p.h动态库${ASCEND_HOME_PATH}/opp/vendors/cust/lib64/libhccl_custom_p2p.soAICPU 算子描述文件${ASCEND_HOME_PATH}/opp/vendors/cust/aicpu/config/libp2p_aicpu_kernel.jsonAICPU 算子包${ASCEND_HOME_PATH}/opp/vendors/cust/aicpu/kernel/aicpu_hccl_custom_p2p.tar.gz安装脚本${ASCEND_HOME_PATH}/opp/vendors/cust/scripts/install.sh四、执行自定义算子1. 关闭 AICPU 算子验签功能# 查询AI CPU算子用户自定义验签能力使能状态 # False关闭用户自定义验签能力 # True开启用户自定义验签能力 for i in {0..7}; do npu-smi info -t custom-op-secverify-enable -i $i; done # 设置AI CPU算子用户自定义验签能力使能状态使能开关 for i in {0..7}; do npu-smi set -t custom-op-secverify-enable -i $i -d 1; done # 查询AI CPU算子验签模式 # 0关闭验证不验签 # 1华为证书使用华为证书验签默认 # 2客户自定义证书 # 3华为证书、客户自定义证书 # 4开源社区证书 # 5华为证书、开源社区证书 # 6客户自定义证书、开源社区证书 # 7华为证书、客户自定义证书、开源社区证书 for i in {0..7}; do npu-smi info -t custom-op-secverify-mode -i $i; done # 设置AI CPU算子验签模式关闭验签 for i in {0..7}; do npu-smi set -t custom-op-secverify-mode -i $i -d 0; done2. 修改 AICPU 白名单AICPU 默认只加载白名单中配置的包用户自行开发的 AICPU 算子包需配置到白名单中# 编译文件以 root 用户默认安装路径为例 vim /usr/local/Ascend/cann/conf/ascend_package_load.ini将下列内容追加到ascend_package_load.ini中name:aicpu_hccl_custom_p2p.tar.gz install_path:2 optional:true package_path:opp/vendors/cust/aicpu/kernel load_as_per_soc:false各字段含义如下name: tar 包文件名install_path: 安装到 Device 侧的路径optional: 默认为 truepackage_path: tar 包在Host侧CANN Toolkit包下的相对路径load_as_per_soc: 是否每种芯片类型都加载3. 编译样例在examples/04_custom_ops_p2p/testcase代码目录下执行如下命令# 编译样例 make4. 执行样例# 运行样例 make test # 或直接执行样例二进制 export LD_LIBRARY_PATH${ASCEND_HOME_PATH}/opp/vendors/cust/lib64:${LD_LIBRARY_PATH} ./send_recv5. 样例结果示例偶数节点的sendBuf内容初始化为该节点的 DeviceId然后将数据发送至下一奇数节点因此各个奇数节点接收到的是上一节点的 DeviceId。Found 8 NPU device(s) available rankId: 1, output: [ 0 0 0 0 0 0 0 0 ] rankId: 3, output: [ 2 2 2 2 2 2 2 2 ] rankId: 5, output: [ 4 4 4 4 4 4 4 4 ] rankId: 7, output: [ 6 6 6 6 6 6 6 6 ]【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/hccl:自定义通信算子 - 点对点通信

自定义通信算子 - 点对点通信 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode…...

深度剖析Go语言,一文告诉你为什么大厂开始增加Go的招聘量

最近这两年大厂青睐Go,不是因为Go比Java"更好",而是因为Go比Java"更适合云原生时代"。我在G7汇通天下做后端架构时,亲历了从Java全面转向Go的过程。今天用一篇文章,说清Go语言的核心竞争力,以及你…...

利用 Taotoken 模型广场为学术研究项目筛选性价比最高的模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用 Taotoken 模型广场为学术研究项目筛选性价比最高的模型 为学术研究项目选择合适的大语言模型,常常需要在模型能力…...

ARM SIMD浮点与定点转换指令VCVT详解

1. ARM SIMD浮点与定点转换指令概述在ARM架构的SIMD(单指令多数据)指令集中,VCVT系列指令承担着浮点数与定点数之间相互转换的关键任务。这类指令通过单条指令同时处理多个数据元素,实现了数值格式转换的并行化处理。作为ARM NEON技术的重要组成部分&…...

嵌入式ROM代码启动机制与优化实践

1. 嵌入式ROM代码启动机制解析在嵌入式系统开发领域,ROM代码是处理器上电后最先执行的固件,它如同系统的"基因代码"决定了硬件初始化的基本行为。以TI OMAP系列处理器为例,其ROM代码存储在芯片内部掩膜ROM中,主要完成三…...

集成电路PVT角点分析的零调优智能方法

1. 多元角点分析的技术挑战与突破在集成电路设计领域,工艺-电压-温度(PVT)角点分析是确保芯片可靠性的关键环节。随着工艺节点不断缩小,晶体管级变异效应日益显著,传统的单角点验证方法已无法满足现代芯片设计的严苛要…...

cann-bench TopK算子API描述

TopK 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台&#xff…...

三步解锁QQ音乐加密文件:qmc-decoder让你的音乐真正自由播放

三步解锁QQ音乐加密文件:qmc-decoder让你的音乐真正自由播放 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经在QQ音乐下载了心爱的歌曲,却…...

CANN/catccos计算通信融合算子模板库

CATCCOS 【免费下载链接】catccos CATCCOS昇腾计算-通信融合算子模板库,是一个聚焦于提供高性能计算通信融合类算子基础模板的代码库。 项目地址: https://gitcode.com/cann/catccos 📌 简介 CATCCOS(CANN Templates for Compute-Communication …...

CANN设备运行时事实

Device and Runtime Facts 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills Use this file for device caps, pipe mapp…...

RAP中的派生变量%说明

1. %msg是 BDEF 派生类型(Derived Types)的一个组件。它被用作 REPORTED 响应参数的一个组成部分。%msg 提供了一个消息接口 IF_ABAP_BEHV_MESSAGE 的实例。如果不需要对该接口进行自定义实现,可以使用继承而来的 new_message( ) 或 new_mess…...

CANN/tensorflow AOE调优配置

AOE 【免费下载链接】tensorflow Ascend TensorFlow Adapter 项目地址: https://gitcode.com/cann/tensorflow [!NOTE]说明 AOE调优特性仅支持如下产品的训练场景: Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品A…...

长期使用Taotoken服务在API延迟与稳定性方面的实际感受分享

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken服务在API延迟与稳定性方面的实际感受分享 在持续数月的项目开发中,我们团队将多个AI应用的后端服务统…...

企业内如何通过Taotoken实现AI模型调用的统一审计与风控

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内如何通过Taotoken实现AI模型调用的统一审计与风控 对于有合规与安全要求的企业而言,直接让各部门或应用分别对接…...

我给 MariaDB 装了个“副驾驶”:DBLens for MariaDB

有时候我觉得,数据库不是难用,是太会藏东西了。 你问它:“订单状态在哪?” 它沉默。 你问:“这个字段谁在用?” 它继续沉默。 你打开表列表,看着一串似曾相识但又不敢乱点的名字,心里…...

马斯克投1200亿建芯片工厂,微美全息加速量子算力集群进入全球“AI军备竞赛”

据报道,埃隆马斯克的太空探索技术公司准备斥资1200亿美元建造一家人工智能(AI)芯片工厂,这将是世界上最大的人工智能芯片工厂。AI芯片工厂重构算力马斯克在社交媒体平台X上写道:“这是为建设全球最大、最先进芯片制造设…...

CANN/runtime算子信息订阅API

# 19-03 订阅算子信息 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述算子信息订阅接口,用于订阅模型中算子的执行信息(类型、名称、耗时等)…...

CANN/runtime多Stream同步示例

2_multi_stream 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 描述 本样例展示了多个Stream之间流间任务同步功能。 产品支持情况 本样例支持以下产品: 产品是否支持Atlas A3 训练系列…...

AI时代知识工作者的创造力重塑:从复用、随机性到形式与内容的边界

1. 项目概述:当知识工作遇上AI,创造力如何被重新定义?最近和不少做内容、做产品、做策略的朋友聊天,大家都有一个共同的感受:自从ChatGPT、Midjourney这些AI工具普及后,工作流程确实快了不少,但…...

CANN/ops-nn Gelu梯度算子

GeluGrad 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√A…...

科学拉丁文献翻译评测:ChatGPT与Google Translate的深度对比

1. 项目缘起与核心价值作为一名长期在生物、医药和古典文献领域打交道的从业者,我几乎每天都要和拉丁文打交道。无论是解读一份18世纪的植物志手稿,还是理解一篇现代药理学论文中引用的经典术语,拉丁语都是横亘在面前的一道坎。过去&#xff…...

通过 Taotoken 管理控制台精细化设置 API Key 的访问权限与审计日志

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 Taotoken 管理控制台精细化设置 API Key 的访问权限与审计日志 在团队协作或项目开发中,统一管理大模型 API 的调…...

CANN/opbase获取Tensor格式

aclGetFormat 【免费下载链接】opbase 本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。 项目地址: https://gitcode.com/cann/opbase 功能说明 获取aclTensor的format,aclTensor由aclCreateTensor接口创建。 函数原型 …...

ATVC AddWithBroadcast算子样例

【免费下载链接】atvc ATVC(Ascend C Templates for Vector Compute),是为基于Ascend C开发的典型Vector算子封装的一系列模板头文件的集合,可帮助用户快速开发典型Vector算子。 项目地址: https://gitcode.com/cann/atvc …...

泰山派3M-RK3576-系统功能-Debian12-MIPI屏幕显示

Debian12系统MIPI屏幕显示 下载对应镜像 使用 网盘🚀 在 系统镜像/Debian12/ 这个目录中下载我们提供的 .img 镜像文件。 本文档使用的镜像有两个(需要根据屏幕的型号选择): 【1】. TaishanPi-3M-RK3576_Debian12-Xfce_dsiC41…...

Graph-autofusion super_kernel极简示例

super_kernel极简sample 【免费下载链接】graph-autofusion Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过自动融合技术加速模型执行。 目前已开源 SuperKernel 组件,未来将持续开放更多自动融合…...

02.基础语法

第 2 章 C++ 基础语法 目录介绍 2.1 C++快速介绍 2.1.1 C++语言介绍 2.1.2 C++的特点 2.1.3 C++标准库 2.1.4 C++应用领域 2.1.5 C++的版本 2.1.6 综合案例与思考 2.2 C++编译器...

CANN TensorFlow调试配置

功能调试 【免费下载链接】tensorflow Ascend TensorFlow Adapter 项目地址: https://gitcode.com/cann/tensorflow enable_exception_dump 是否dump异常算子数据。 0:关闭异常算子数据dump功能。 1:开启普通ExceptionDump,dump异常…...

群论与张量积:构建等变神经网络的核心原理与实践

1. 项目概述:当AI遇见数学的优雅 如果你在深度学习的海洋里游过泳,大概率听过“卷积神经网络(CNN)在处理图像时具有平移不变性”这种说法。这听起来很酷,但你是否想过,这种“不变性”从何而来?它…...

CANN/hcomm pre-commit 使用指导

pre-commit 工具使用指导 【免费下载链接】hcomm HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 概述 pre-commit 是一个 Git Hooks 框架&#xff0…...