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

CANN/pto-isa异步通信Demo

Allgather Async Demo【免费下载链接】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-isaDemonstrates the allgather collective operation using PTO async instructions across multiple NPU devices.A2/A3 build(defaultSOC_VERSIONAscend910B1): Demos 1–3 using SDMA engine (TPUT_ASYNC/TGET_ASYNCvia HCCL)A5 build(SOC_VERSIONAscend950PR_9599): Demos 4–6 using URMA engine (HCCP V2 Jetty RDMA).The two engine paths use different host infrastructure (a2a3/common.hppvsa5/common.hpp) with incompatible ACL/runtime initialization, so each build only compiles and links one set.PrerequisitesCANN Toolkit (version 9.0.0 or above) installed (ASCEND_HOME_PATHset viaset_env.sh)CANN Ops package (version 9.0.0 or above) installedMPICH installedEnough NPU devices for your MPI rank count (default./run.shuses 8 ranks;./run.sh 2 …uses 2). Typically one rank maps to one device.Quick Startsource /path/to/set_env.sh ./run.sh # 8 ranks, default SoC Ascend910B1 (A2/A3, Demos 1–3) ./run.sh 4 # 4 ranks ./run.sh 2 Ascend950PR_9599 # 2 ranks, A5 (Demos 4-6)What It DoesEach rank contributes 256int32_tvalues. After allgather, every rank holds all ranks data.SDMA Demos (A2/A3 build)TPUT_ASYNC Allgather (multi-core): Launched withnRanks, ...— each AICORE handles one target ranks communication in parallel. The AICORE whereblock_idx myRankperforms a local copy; all others usepto::comm::TPUT_ASYNCto write data to the corresponding remote rank.TGET_ASYNC Allgather (multi-core): Launched withnRanks, ...— each AICORE pulls data from one source rank in parallel. The AICORE whereblock_idx myRankperforms a local copy; all others usepto::comm::TGET_ASYNCto read data from the corresponding remote rank.Ring TPUT_ASYNC Allgather: Ring algorithm with N-1 rounds for N ranks. In round 0, each rank copies itssendBuflocally and pushes it to the next rank viaTPUT_ASYNC. In subsequent rounds, each rank forwards the chunk it received in the previous round to the next rank. Each round is a separate kernel launch with a host-side barrier in between.URMA Demos (A5 build)URMA TPUT_ASYNC Allgather (multi-core): Same algorithm as Demo 1, usingTPUT_ASYNCDmaEngine::URMAwithUrmaPeerMrBaseAddrfor remote addressing.URMA TGET_ASYNC Allgather (multi-core): Same algorithm as Demo 2, usingTGET_ASYNCDmaEngine::URMA.URMA Ring TPUT_ASYNC Allgather: Same ring algorithm as Demo 3, usingTPUT_ASYNCDmaEngine::URMA. Runs N-1 rounds; on 2 ranks this is a single round verifying basic AllGather correctness. The recv→forward path is naturally exercised when N≥3.Key PTO APIsDemos 1–3 (SDMA / HCCL)pto::comm::AsyncSession,BuildAsyncSession(SDMA overload, used withSdmaWorkspaceManagerand HCCL context)pto::comm::TPUT_ASYNC,TGET_ASYNC(default SDMA engine)pto::comm::AsyncEvent,WaitSdmaWorkspaceManager,HcclRemotePtr(host)Demos 4–6 (URMA)pto::comm::BuildAsyncSessionDmaEngine::URMA,TPUT_ASYNC/TGET_ASYNCDmaEngine::URMAUrmaWorkspaceManager,UrmaPeerMrBaseAddr(host)Project Structureallgather_async/ ├── CMakeLists.txt -- Build configuration (bisheng CCE) ├── csrc/ │ ├── kernel/ │ │ ├── allgather_kernel.cpp -- SDMA kernels host launchers (A2/A3) │ │ ├── allgather_kernel.h -- SDMA host-side function declarations │ │ ├── allgather_urma_kernel.cpp -- URMA kernels host launchers (A5) │ │ └── allgather_urma_kernel.h -- URMA host-side function declarations │ └── host/ │ └── main.cpp -- Entry point (MPI init, run demos, report) ├── run.sh -- One-click build and run ├── README.md -- English documentation └── README_zh.md -- Chinese documentationDependency Installation1. CANN ToolkitCANN Toolkit version 9.0.0 or above. Available via two methods:Option 1: Download from the Ascend CommunityOption 2: Direct download (preview build): x86_64 / aarch64For installation instructions, refer to Quick Install CANN.After installation, set up the environment (default install path):source /usr/local/Ascend/ascend-toolkit/set_env.shCustom install path:source ${install_path}/ascend-toolkit/set_env.sh2. CANN OpsCANN Ops package (version 9.0.0 or above). Download the ops-legacy package for your hardware platform:Hardwarex86_64aarch64A2DownloadDownloadA3DownloadDownloadInstallation follows the same procedure as the Toolkit. Refer to Quick Install CANN.3. MPICHRecommended version 3.2.1. Build and install from source:# Example with version 3.2.1 version3.2.1 wget https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz tar -xzf mpich-${version}.tar.gz cd mpich-${version} ./configure --prefix/usr/local/mpich --disable-fortran make make installSet environment variables:export MPI_HOME/usr/local/mpich export PATH${MPI_HOME}/bin:${PATH}Verify thatmpirunis available:mpirun --versionManual Build# A2/A3 build (Demos 1-3) mkdir -p build cd build cmake .. -DSOC_VERSIONAscend910B1 make -j$(nproc) cd .. mpirun -n 8 ./build/bin/allgather_demo # A5 build (Demos 4-6) rm -rf build mkdir -p build cd build cmake .. -DSOC_VERSIONAscend950PR_9599 make -j$(nproc) cd .. mpirun -n 2 ./build/bin/allgather_demoSOC_VERSIONdetermines which kernel set is compiled: A2/A3 builds only the SDMA kernel; A5 builds only the URMA kernel. A clean rebuild (rm -rf build) is needed when switching between SoC targets.Expected OutputA5 (2 ranks, URMA Demos 4–6) PTO Allgather Async Demo Ranks: 2 --- Demo 4: URMA Multi-core TPUT_ASYNC --- [URMA_TPUT_MC PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] [URMA_TPUT_MC PASS] Rank 1: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] --- Demo 5: URMA Multi-core TGET_ASYNC --- [URMA_TGET_MC PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] [URMA_TGET_MC PASS] Rank 1: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] --- Demo 6: URMA Ring TPUT_ASYNC --- [URMA_RING_TPUT PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] [URMA_RING_TPUT PASS] Rank 1: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] All demos PASSED A3 (8 ranks, SDMA Demos 1–3) PTO Allgather Async Demo Ranks: 8 --- Demo 1: Multi-core TPUT_ASYNC --- [TPUT_ASYNC_MC PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] slot[2][2000,2001,2002,...] ... ... --- Demo 2: Multi-core TGET_ASYNC --- [TGET_ASYNC_MC PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] slot[2][2000,2001,2002,...] ... ... --- Demo 3: Ring TPUT_ASYNC --- [RING_TPUT_ASYNC PASS] Rank 0: slot[0][0,1,2,...] slot[1][1000,1001,1002,...] slot[2][2000,2001,2002,...] ... ... All demos PASSED 【免费下载链接】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异步通信Demo

Allgather Async Demo 【免费下载链接】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 …...

Cap开源视频消息工具:自托管部署、技术架构与Loom替代方案

1. 项目概述:一个开源的视频消息工具 如果你正在寻找一个可以替代 Loom 的、功能强大且能完全掌控在自己手中的视频录制与分享工具,那么 Cap 绝对值得你花时间深入了解。简单来说,Cap 是一个开源的视频消息工具,它允许你快速录制、…...

开源AI录音助理ClawHark:用Wear OS手表打造隐私优先的语音采集方案

1. 项目概述:将你的智能手表变成全天候AI录音助理 如果你和我一样,对Omi、Limitless这类AI录音硬件感兴趣,但又不想额外花钱买设备,也不想把个人对话数据交给第三方云服务,那么ClawHark这个项目可能就是你要找的答案。…...

企业级AI应用开发,利用Taotoken实现API访问控制与审计日志

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级AI应用开发,利用Taotoken实现API访问控制与审计日志 在将大模型能力集成到企业应用的过程中,开发团队…...

基于Docker的AI Agent安全部署实践:Carapace项目深度解析

1. 项目概述:为AI Agent打造一个安全的“家”如果你正在运行一个像OpenClaw这样的AI Agent网关,那么你手里握着的是一把双刃剑。它强大、灵活,能帮你处理各种任务,但同时也意味着你赋予了一个AI程序访问你的Shell、文件系统乃至外…...

多模态AI重塑教育:从评估到个性化支持的实践与伦理挑战

1. 项目概述:当多模态AI走进课堂,我们面临什么?作为一名长期关注教育技术前沿的从业者,我亲眼见证了AI从实验室概念到课堂助手的演变。最初,AI在教育中的应用多是单点突破,比如用算法批改选择题&#xff0c…...

医疗AI可解释性实战:SHAP与EBM模型在眼科诊断中的对比解析

1. 项目概述:当AI遇见眼科,我们如何看清“决策黑箱”?在眼科神经领域,多发性硬化(MS)的诊断与病程监测,正经历一场从“经验依赖”到“数据驱动”的深刻变革。光学相干断层扫描(OCT&a…...

Nucleus Co-Op终极指南:如何让任何单机游戏变身为多人派对神器

Nucleus Co-Op终极指南:如何让任何单机游戏变身为多人派对神器 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾经想过&#xf…...

AI平台竞争中的合谋与网络效应:市场博弈的底层逻辑分析

1. 项目概述:当AI平台开始“默契”时,市场会发生什么? 最近和几位做投资和产品战略的朋友聊天,话题总绕不开一个现象:几个头部的AI大模型平台,无论是定价策略、功能迭代节奏,还是对开发者的扶持…...

LLM推理服务调度优化:KV$缓存与负载均衡的乘法组合方法

1. LLM推理服务调度优化概述大型语言模型(LLM)推理服务面临的核心挑战之一是如何高效调度用户请求。当多个用户同时向部署在GPU集群上的LLM服务发送请求时,调度系统需要决定将每个请求分配给哪个计算实例。这个决策直接影响两个关键性能指标:首令牌延迟(…...

基于LLM智能体的多模态医疗AI系统:架构、实现与临床评估

1. 项目概述与核心思路在肿瘤诊疗的日常工作中,我们常常面临一个困境:信息是海量的,但时间是有限的。一位晚期结直肠癌患者,他的病历里可能包含长达数年的门诊记录、几次手术的病理报告、不同时期的CT/MRI影像、以及一份包含数百个…...

CANN/ops-blas Scopy算子实现

Scopy算子实现 【免费下载链接】ops-blas 本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。 项目地址: https://gitcode.com/cann/ops-blas 概述 BLAS Scopy算子实现,同时支持Ccopy复数向量复制。 支持的接口 aclblasScopy: 实数向量复制…...

快速提取视频中的PPT内容:一键将视频转PDF的终极解决方案

快速提取视频中的PPT内容:一键将视频转PDF的终极解决方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习时代,你是否经常需要从教学视频、会议录…...

报名截止前最后48小时,你必须确认的7项资格校验清单,漏1项直接失去参会编码!

更多请点击: https://intelliparadigm.com 第一章:2026年AI技术大会报名截止时间 2026年AI技术大会(AI Tech Summit 2026)官方报名通道将于北京时间2026年3月15日23:59正式关闭,逾期系统将自动终止注册与资料提交。所…...

[具身智能-617]:激光雷达传感器的工作原理、接口信号、数据格式

激光雷达(LiDAR)是一种主动式三维环境感知传感器,核心是通过发射激光并测量反射信号,获取周围物体的精确距离、角度与反射特性,最终生成点云(Point Cloud)。以下从工作原理、接口信号、数据格式…...

[具身智能-616]:IMU 四元数是什么?(大白话 + 原理 + 作用 + 为什么不用欧拉角)

一、一句话极简定义四元数是用来描述物体在 3D 空间姿态、旋转的数学工具,在 IMU 九轴里,就是用 4 个数字,唯一表示传感器当前的倾斜、旋转、朝向。格式:\(q [w,\ x,\ y,\ z]\)4 个浮点数,没有角度,纯数学…...

3分钟快速安装TrollStore的终极指南:TrollInstallerX完整教程

3分钟快速安装TrollStore的终极指南:TrollInstallerX完整教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是一个文章写手,你负责为开源项目…...

3分钟解决Word APA格式问题:免费获取官方最新7th Edition样式表终极指南

3分钟解决Word APA格式问题:免费获取官方最新7th Edition样式表终极指南 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 还在为毕业论文的参…...

Farcaster智能体框架实战:从事件驱动到社区助手构建

1. 项目概述:一个面向Farcaster生态的智能体框架最近在Web3社交领域,Farcaster生态的活跃度肉眼可见地增长。无论是原生应用Warpcast的火爆,还是各种第三方客户端和机器人的涌现,都预示着这里正在成为一个新的开发者乐园。在这个背…...

AI模型统一网关AIClient-2-API:协议转换与智能调度实战

1. 项目概述:一个为开发者而生的AI模型统一网关 如果你和我一样,是个经常折腾各种AI模型的开发者,那你肯定遇到过这样的困境:想用Claude 4.5 Opus写代码,但官方API贵得离谱;想试试Google最新的Gemini 3 Pr…...

CANN驱动获取卡电子标签API

dcmi_get_card_elabel_v2 【免费下载链接】driver 本项目是CANN提供的驱动模块,实现基础驱动和资源管理及调度等功能,使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_card_elabel_v2(int card_id, struct dcm…...

短剧搜索管理系统源码最新版-美化版本

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 短剧资源自动更新:配置每日更新任务 通过计划任务实现资源每日自动更新,无需手动添加: 进入宝塔 “计划任务”→“添加任务”,任务类型选择…...

browser-act/skills:构建稳健浏览器自动化的工程化技能库

1. 项目概述:从“技能”到“浏览器自动化”的桥梁看到browser-act/skills这个项目标题,我的第一反应是:这很可能是一个关于浏览器自动化(Browser Automation)的“技能库”或“工具箱”。在自动化测试、数据采集&#x…...

短网址生成系统源码 短链接生成 网址缩短

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 短网址生成系统是一个功能完善、高性能的企业级短链接服务平台,支持多域名、AB测试、用户管理、实时统计等功能。 功能特性: 1、核心功能 短链接生成: 支持自定义…...

本地AI编程助手搭建指南:Ollama部署、模型定制与IDE集成

1. 项目概述:打造你的本地AI编程伙伴如果你和我一样,厌倦了每次写代码都要把代码片段、项目结构甚至一些敏感的业务逻辑上传到云端AI服务,那么今天聊的这个方案,你一定会感兴趣。简单来说,我们就是要在一台普通的个人电…...

AI时代知识工作者的创造力转型:从内容生产到批判性整合

1. 项目概述:当AI成为你的“副驾驶”,知识工作者的创造力何去何从?如果你是一位文案、设计师、程序员,或者任何一位以“生产内容”为核心的知识工作者,最近一两年,你大概率已经和ChatGPT、Midjourney、GitH…...

VSCode扩展离线下载器:原理、部署与内网开发实践

1. 项目概述:一个解决离线安装痛点的实用工具 作为一名长期在多种网络环境下工作的开发者,我深知离线安装开发工具的痛点。尤其是在内网开发、网络受限或需要批量部署开发环境的场景下,如何获取并安装VSCode扩展,常常是一个令人头…...

CANN/hixl C++示例指南

目录 【免费下载链接】hixl HIXL(Huawei Xfer Library)是一个灵活、高效的昇腾单边通信库,面向集群场景提供简单、可靠、高效的点对点数据传输能力。 项目地址: https://gitcode.com/cann/hixl 样例介绍目录结构环境要求程序编译样例运…...

基于LES与扩散模型的涡轮机入流三维湍流重构技术详解

1. 项目概述:从“猜”到“算”的湍流入流重构在涡轮机械,尤其是风力发电和航空发动机领域,有一个长期困扰工程师和科研人员的“老大难”问题:我们如何精确地知道,即将冲击叶片的那一团空气,它的内部结构到底…...

低资源濒危方言文本分类实战:从数据稀缺到96%准确率的Hawrami案例

1. 项目概述:当AI遇见濒危方言在自然语言处理(NLP)领域,我们常常谈论的是英语、中文这些资源丰富的“大语言”。但作为一名长期关注多语言技术和语言资源建设的从业者,我深知那些在数字世界中悄然失声的“小语言”和方…...