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

CANN/PTO-ISA通信算子开发指南

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isaname: PTO-COMM 通信算子开发指南 description: 基于 PTO-COMM ISA 开发通信算子的完整指南。涵盖 Host-Device 架构、文件结构、通信模式P2P/集合通信/通算融合、同步策略、信号矩阵设计、多 Block 调度、远端地址管理、构建系统配置等。触发需要使用 PTO-COMM 开发通信算子、设计通信 kernel、编写 Host 侧代码、配置 CMakeLists 时。 license: CANN Open Software License Agreement Version 2.0PTO-COMM 通信算子开发指南定位本 Skill 是流程型 Skill指导从零开发一个基于 PTO-COMM ISA 的通信算子。架构概述Host-Device 分离Host 侧 Device 侧 ┌─────────────────┐ ┌─────────────────────────┐ │ main.cpp │ │ comm_kernel.cpp │ │ - MPI 初始化 │ 启动 │ - __global__ AICORE │ │ - ACL 初始化 │──kernel──→ │ - TPUT/TGET/TNOTIFY/... │ │ - HCCL 通信域 │ │ - 信号同步逻辑 │ │ - 内存分配 │ ├─────────────────────────┤ │ - Kernel 启动 │ │ compute_kernel.cpp │ │ - 结果验证 │ 启动 │ - __global__ AICORE │ │ │──kernel──→ │ - TMATMUL/TADD/... │ └─────────────────┘ │ - 计算逻辑 │ └─────────────────────────┘关键原则Host 侧负责 MPI/HCCL 通信域初始化、内存分配、远端地址获取、kernel 启动和结果验证Device 侧使用 PTO-COMM 指令执行实际的数据传输和同步计算和通信可以分别编译为独立的.so文件编程模型选择需要 NPU 间通信 ├── 仅需基本 P2P 传输 │ └── 使用 TPUT/TGET → 参考 开发模式 之 P2P 模式 │ ├── 需要集合通信AllReduce/AllGather/ReduceScatter 等 │ ├── 可用内置集合指令完成 │ │ └── 使用 TGATHER/TSCATTER/TBROADCAST/TREDUCE → 参考 开发模式 之集合通信模式 │ └── 需要自定义算法如 RSAG 组合 AllReduce │ └── 使用 TPUTAtomicAdd TNOTIFY/TWAIT 组合 → 参考 开发模式 之自定义集合通信 │ ├── 需要通算融合计算通信重叠 │ └── 使用双 kernelcube vec 队列/信号同步 → 参考 开发模式 之通算融合模式 │ └── 需要异步大块传输 └── 使用 TPUT_ASYNC/TGET_ASYNC → 参考 pto-comm-isa-reference文件结构与命名规范kernels/manual/platform/operator_name/ ├── comm_kernel.cpp # 通信 kernelVec 架构 ├── compute_kernel.cpp # 计算 kernelCube 架构如需融合 ├── config.h # Tiling 配置、Block 数量、常量定义 ├── kernel_launchers.h # Host 侧 kernel 启动函数声明 ├── common.hpp # 远端地址计算等共享工具 ├── main.cpp # Host 侧初始化、启动、验证 ├── CMakeLists.txt # 构建配置 ├── run.sh # 运行脚本 └── README_zh.md # 算子文档核心开发模式四种开发模式的完整代码示例和同步策略详见详细指南开发模式详解模式指令组合适用场景P2PTPUT/TGET两 NPU 间数据传输集合通信TGATHER/TSCATTER/TBROADCAST/TREDUCE标准多 rank 操作自定义集合通信TPUTAtomicAdd TNOTIFY/TWAITRSAG 组合实现 AllReduce通算融合双 kernel 队列 信号矩阵计算与通信重叠同步策略与信号设计信号矩阵布局、DeviceBarrier 实现、流水线同步详见详细指南信号与同步设计快速参考同步需求推荐方式跨 rank barrierDeviceBarrierIntra-rank Cross-rank 本地广播阶段间分隔pipe_barrier(PIPE_ALL)计算→通信通知SPSC 就绪队列 TTEST 轮询手动流水线set_flag/wait_flag仅 TLOAD/TSTORE_IMPL 时需要多方通知一方NotifyOp::AtomicAdd一方通知多方NotifyOp::Set远端地址管理与多 Block 调度远端地址获取方式、地址对齐要求、Block 分配策略、工作均分方法详见详细指南多 Block 调度与地址管理地址对齐要求所有 GM 地址必须满足 32 字节对齐Signal 地址必须 4 字节对齐TPUT_ASYNC/TGET_ASYNC 的 workspace 由专用 Manager 管理多核切分策略切分维度适用场景方法Tile 维度通信量大Tile 数多均分 Tile 到各 blockRow 维度需要精确负载均衡展平为 row-level 分配推荐Rank 维度不同 rank 独立传输按 rank 分配给不同 blockHost 侧与构建系统Host 侧标准初始化流程、CMakeLists 模板、SOC_VERSION 映射、kernel 启动模式详见详细指南Host 侧与构建系统SOC_VERSION 与架构映射SOC_VERSION架构Cube ArchVec ArchAscend910BA2A3dav-c220-cubedav-c220-vecAscend910CA2A3dav-c220-cubedav-c220-vecAscend950A5dav-c350-cubedav-c350-vec开发检查清单开发前确认目标平台A2A3/A5和对应的架构编译选项确认通信拓扑节点内/跨节点和链路类型确定通信模式P2P/集合/融合规划信号矩阵布局实现中TNOTIFY 目标地址为远端TWAIT/TTEST 监听地址为本地乒乓 Tile 的 UB 偏移不重叠使用pipe_barrier(PIPE_ALL)分隔不同阶段手动 TLOAD/TSTORE_IMPL 之间有正确的 set_flag/wait_flag所有 rank 使用相同的 rootIdx 构建 ParallelGroup非 root rank 不调用集合通信指令远端地址计算正确基于通信窗口偏移测试前信号矩阵每次运行前清零Host 侧aclrtSynchronizeStream确保 kernel 执行完成内存大小与 Tile 配置一致CMakeLists 中 Vec/Cube 架构选择正确相关 SkillsSkill用途pto-comm-isa-referencePTO-COMM 指令签名、参数、约束速查pto-comm-testing-debug通信算子测试与调试指南pto-comm-performance-optimization通信算子性能优化vector-fusion-operator-generatePTO 向量融合算子开发指南【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/PTO-ISA通信算子开发指南

【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms. 项…...

CANN/amct DeepSeek-V3.2量化

NPU DeepSeek-V3.2 量化训练及推理 【免费下载链接】amct AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。 项目地址: https://gitcode.com/cann/amct DeepSeek团队发布了最新的模型DeepSeek-V3.2,可利用稀疏架构 DeepSeek Sparse Attention(DSA) 来提高…...

从零构建GitHub Pages静态博客:Jekyll选型、部署与优化全指南

1. 项目概述:一个静态博客的诞生与演进 “lofder/lofder.github.io”,这个看似简单的GitHub仓库地址,背后代表的是一个非常经典且实用的个人项目:一个基于GitHub Pages托管的静态个人博客。对于很多开发者、技术爱好者乃至内容创…...

别急着重启!Redis突然连不上的5分钟排查手册(附CentOS 7实战命令)

Redis突发连接失败的黄金5分钟:运维高手的应急排查指南 当凌晨三点收到Redis连接失败的告警时,你的第一反应是什么?重启服务?检查网络?还是先泡杯咖啡冷静一下?作为经历过数百次Redis故障的老兵&#xff0c…...

从RTL到可执行:手把手拆解基于FPGA的硬件仿真器前端三步骤(Analyze, Elaboration, Synthesis)

从RTL到可执行:手把手拆解基于FPGA的硬件仿真器前端三步骤(Analyze, Elaboration, Synthesis) 在ASIC和FPGA验证领域,硬件仿真(Emulation)已成为验证复杂芯片设计不可或缺的一环。与传统的软件仿真&#xf…...

ru-text:为AI编码助手注入俄语文本质量灵魂的规则引擎

1. 项目概述:为AI编码助手注入俄语文本质量灵魂如果你是一名在俄语环境中工作的开发者、产品经理或内容创作者,并且正在使用诸如Claude Code、GitBrains或Cursor这类AI编码助手,那么你很可能遇到过这样的困境:助手生成的俄语文本&…...

CANN/shmem SIMT远程内存访问示例

样例介绍 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem 本样例旨在展示 SIMD 与 SIMT 混合编译模式下&#x…...

为AI智能体构建持久化记忆:Stratum架构设计与工程实践

1. 项目概述:为AI智能体注入“脊柱”的持久化基础设施如果你和我一样,深度使用过像OpenClaw这类本地化AI智能体框架,一定会被一个核心问题困扰:智能体没有记忆。每次启动,它都像一张白纸,上次的对话、犯过的…...

Hyper-V虚拟机网络配置避坑指南:从‘网络不可达’到流畅上网,手把手教你配置CentOS/Ubuntu静态IP和DNS

Hyper-V虚拟机网络配置避坑指南:从‘网络不可达’到流畅上网 1. 理解Hyper-V网络架构的核心要素 在开始配置之前,我们需要先理解Hyper-V虚拟网络的基本工作原理。Hyper-V的网络虚拟化架构由三个关键组件构成:虚拟交换机(Virtual Switch)&…...

CANN / cann-recipes-infer: NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化

NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化 【免费下载链接】cann-recipes-infer 本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-infer 面向 DeepSeek-V3.2-Exp…...

Ubuntu 20.04 + ROS2 Foxy 环境下,手把手搞定 Swarm-SLAM 多机器人协同建图环境(附常见编译报错解决)

Ubuntu 20.04 ROS2 Foxy 环境下 Swarm-SLAM 多机器人协同建图实战指南 第一次接触多机器人协同SLAM时,我被Swarm-SLAM的分布式架构设计所吸引——它不需要中央服务器,每个机器人独立完成局部建图,再通过轻量级通信交换关键信息。这种设计理…...

给RK3568的Linux 4.19内核打RT-Preempt补丁,我踩过的那些坑都帮你填好了

给RK3568的Linux 4.19内核打RT-Preempt补丁:实战排坑全记录 在嵌入式开发领域,实时性往往是决定系统可靠性的关键因素。RK3568作为一款广泛应用于工业控制、边缘计算场景的ARM处理器,其Linux内核的实时性优化一直是开发者关注的焦点。本文将深…...

CANN/CATCCOS预提交代码检查指南

Pre-commit 代码检查配置说明 【免费下载链接】catccos CATCCOS昇腾计算-通信融合算子模板库,是一个聚焦于提供高性能计算通信融合类算子基础模板的代码库。 项目地址: https://gitcode.com/cann/catccos 本文档说明本次为 catccos 项目的 pre-commit 代码检…...

llocal框架:本地化AI应用开发实战与RAG实现指南

1. 项目概述:一个本地运行的AI应用框架 最近在折腾AI应用开发的朋友,估计都绕不开一个核心痛点:如何把那些强大的大语言模型(LLM)能力,低成本、低延迟、高隐私地集成到自己的项目里?是吭哧吭哧地…...

CANN Pi0.5昇腾训推实践

LeRobot 框架具身 VLA 模型昇腾训推实践 【免费下载链接】cann-recipes-embodied-intelligence 本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence 下表展示…...

别再为‘Target uses ARM-Compiler which is not available’抓狂了!一份给STM32/Keil开发者的编译器环境修复指南

STM32开发者的Keil环境配置实战:从编译器缺失到团队协作标准化 当你从同事那里接手一个STM32项目,满心期待地点击"Rebuild All"按钮时,突然跳出的红色错误提示往往让人心头一紧。特别是当看到"Target uses ARM-Compiler whic…...

CANN多流分析模板

<network_or_case_name> 多流分析 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills 1. 分析范围 模型/网络&…...

CANN/runtime Profiling数据采集接口

&#xfeff;# 19-01 Profiling数据采集接口 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述 Profiling 数据采集的核心接口&#xff0c;用于性能采集的初始化、配置、启停控制。 aclError…...

复盘红日Vulnstack1:除了MSF和CS,我们还能用哪些“冷门”工具链完成内网横向?

红日Vulnstack1靶场实战&#xff1a;突破常规工具链的内网横向技术探索 当主流渗透工具遭遇严格监控时&#xff0c;如何构建替代性攻击链&#xff1f;红日安全团队的Vulnstack1靶场作为国内知名的内网渗透训练环境&#xff0c;常被用作测试Metasploit&#xff08;MSF&#xff0…...

cann/sip FFT逆短时傅里叶变换

Istft 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库&#xff0c;基于华为Ascend AI处理器&#xff0c;专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 推理产品…...

拆解ADAS域控成本密码:聊聊MCU端AutoSAR CP软件如何从DV、产测到量产一步步省钱

ADAS域控成本优化实战&#xff1a;AutoSAR CP软件三阶段降本策略 当某德系车企要求其ADAS域控制器BOM成本降低15%时&#xff0c;作为Tier1供应商的我们面临一个关键抉择——硬件降配可能影响性能&#xff0c;而软件架构优化却能实现"隐形降本"。本文将揭示如何通过Au…...

3步解锁网易云音乐NCM加密:ncmdumpGUI本地转换完全指南

3步解锁网易云音乐NCM加密&#xff1a;ncmdumpGUI本地转换完全指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&…...

极简AI助手noclaw:C语言实现,内存仅324KB,支持工具调用与记忆

1. 项目概述&#xff1a;noclaw&#xff0c;一个极简主义的AI助手基础设施 如果你和我一样&#xff0c;对现在动辄几个GB内存、启动慢如蜗牛的AI应用感到厌倦&#xff0c;那么noclaw的出现&#xff0c;绝对会让你眼前一亮。这是一个用纯C语言编写的、完全自主的AI助手基础设施。…...

小红书下载神器 XHS-Downloader:完整技术架构与使用指南

小红书下载神器 XHS-Downloader&#xff1a;完整技术架构与使用指南 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户链接&a…...

CANN/HCCL AlltoAllV示例

集合通信 - AlltoAllV 【免费下载链接】hccl 集合通信库&#xff08;Huawei Collective Communication Library&#xff0c;简称HCCL&#xff09;是基于昇腾AI处理器的高性能集合通信库&#xff0c;为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/ca…...

利用GitHub Actions与Twitter API实现贡献图动态展示推文更新

1. 项目概述与核心价值最近在折腾个人主页和博客的访客统计时&#xff0c;发现了一个挺有意思的开源项目——tommyjepsen/twblocks。简单来说&#xff0c;这是一个能让你在GitHub个人主页的“小绿点”&#xff08;贡献图&#xff09;上&#xff0c;动态展示Twitter&#xff08;…...

99.手把手教你落地YOLOv5车辆检测,含COCO格式适配+全流程代码实操

摘要 YOLO(You Only Look Once)是一种基于回归的单阶段目标检测算法,以其极快的推理速度和良好的检测精度在工业界广泛应用。本文从零开始,系统讲解YOLOv5的核心原理、训练流程与部署方法。通过一个完整的车辆检测案例,覆盖数据准备、模型训练、推理优化、模型导出等全链…...

新手入门指南使用 curl 命令快速测试 Taotoken 大模型接口

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手入门指南&#xff1a;使用 curl 命令快速测试 Taotoken 大模型接口 基础教程类&#xff0c;针对没有复杂开发环境或希望快速验…...

基于AI智能体的Wazuh自主安全运营流水线构建与实战

1. 项目概述&#xff1a;从手动告警到自主SOC的进化如果你在运维一个安全运营中心&#xff08;SOC&#xff09;&#xff0c;每天面对成百上千条Wazuh告警&#xff0c;从海量噪音中筛选出真正的威胁&#xff0c;然后手动查询日志、关联上下文、编写响应计划&#xff0c;最后再执…...

有限单边响应游戏中的蒙特卡洛反事实遗憾最小化

1. 博弈论中的决策优化难题在有限单边响应游戏这类特殊博弈场景中&#xff0c;参与者常常面临决策优化的核心挑战。这类博弈的特点是其中一方&#xff08;响应方&#xff09;的策略空间有限&#xff0c;而另一方&#xff08;主导方&#xff09;的策略选择会直接影响响应方的收益…...