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

CANN/hixl C++示例指南

目录【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl样例介绍目录结构环境要求程序编译样例运行样例介绍功能通过LLM-DataDist接口实现分离部署场景下KvCache管理功能。目录结构├── cpp | ├── prompt_pull_cache_and_blocks.cpp // pull cache和pull blocks的prompt侧实现 | ├── decoder_pull_cache_and_blocks.cpp // pull cache和pull blocks的decoder侧实现 | ├── prompt_push_cache_and_blocks.cpp // push cache和push blocks的prompt侧实现 | ├── decoder_push_cache_and_blocks.cpp // push cache和push blocks的decoder侧实现 | ├── prompt_switch_roles.cpp // switch_roles的prompt侧实现 | ├── decoder_switch_roles.cpp // switch_roles的decoder侧实现 | ├── client_server_h2d.cpp // HIXL的client-server模式, h2d场景样例 | ├── server_server_d2d.cpp // HIXL的server-server模式, d2d场景样例 | ├── fabric_mem_d2d.cpp // HIXL的fabric-mem模式下的d2d场景样例 | ├── CMakeLists.txt // 编译脚本样例配置说明部分用例支持在A5环境使用RDMA链路执行且需要在双机上执行会在对应用例中进行特别说明。在执行前需要手动配置local_comm_res配置格式参考通信设备配置。可通过以下操作获取 host 网卡的 ip 信息# 查询RoCE设备和网口的对应关系查看状态为Up的网口名 ibdev2netdev # 根据网口名找出对应的ip信息 ifconfig程序编译参考构建里的编译执行章节利用build.sh的--examples参数进行编译。编译结束后在build/examples/cpp目录下生成多个可执行文件。样例运行1. prompt/decoder样例说明所有样例需要成对运行prompt侧和decoder侧执行间隔时间不要过长样例中decoder侧设置WAIT_PROMPT_TIME为5sprompt侧设置WAIT_TIME为10s用户可根据实际情况自行修改这两个变量的值以保证用例成功运行。下面所有样例是以prompt和decoder运行在相同机器上为前提编写将local_ip和remote_ip设为相同。配置环境变量若运行环境上安装的“Ascend-cann-toolkit”包环境变量设置如下source ${HOME}/Ascend/cann/set_env.sh“${HOME}/Ascend”请替换相关软件包的实际安装路径。若运行环境上安装的“CANN-XXX.run”包环境变量设置如下source ${HOME}/Ascend/latest/bin/setenv.bash“${HOME}/Ascend”请替换相关软件包的实际安装路径。在运行环境执行可执行文件。(1) 执行pull_cache_and_blocks此样例介绍了decoder向prompt进行pull cache和pull blocks流程其中link和pull的方向与角色无关可以根据需求更改执行prompt_pull_cache_and_blocks, 参数为device_id和local_ip, 其中device_id为prompt要使用的device_id, local_ip为prompt所在host的ip, 如:./prompt_pull_cache_and_blocks 0 10.10.170.1执行decoder_pull_cache_and_blocks, 参数为device_id、local_ip和remote_ip, 其中device_id为decoder要使用的device_id, local_ip为decoder所在host的ipremote_ip为prompt所在host的ip如:./decoder_pull_cache_and_blocks 2 10.170.10.1 10.170.10.1若在A5环境执行还需要增加参数local_comm_res如# prompt主机 HCCL_INTRA_ROCE_ENABLE1 ./prompt_pull_cache_and_blocks 0 10.10.170.0 ‘{net_instance_id:superpod1_1,endpoint_list:[{protocol:roce,comm_id:1.0.0.1,placement:host}],version:1.3}’ # decoder主机 HCCL_INTRA_ROCE_ENABLE1 ./decoder_pull_cache_and_blocks 0 10.170.10.1 10.170.10.0 ‘{net_instance_id:superpod1_1,endpoint_list:[{protocol:roce,comm_id:1.0.0.2,placement:host}],version:1.3}’(2) 执行push_cache_and_blocks此样例介绍了prompt向decoder进行push cache和push blocks流程其中link和push的方向与角色无关可以根据需求更改执行prompt_push_cache_and_blocks, 参数为device_id, local_ip与remote_ip 其中device_id为prompt要使用的device_id, local_ip为prompt所在host的ipremote_ip为prompt所在host的ip, 如:./prompt_push_cache_and_blocks 0 10.10.10.1 10.10.10.1执行decoder_push_cache_and_blocks, 参数为device_id与local_ip, 其中device_id为decoder要使用的device_id, local_ip为decoder所在host的ip, 如:./decoder_push_cache_and_blocks 4 10.10.10.1若在A5环境执行还需要增加参数local_comm_res如# prompt主机 HCCL_INTRA_ROCE_ENABLE1 ./prompt_push_cache_and_blocks 0 10.10.10.0 10.10.10.1 ‘{net_instance_id:superpod1_1,endpoint_list:[{protocol:roce,comm_id:1.0.0.1,placement:host}],version:1.3}’ # decoder主机 HCCL_INTRA_ROCE_ENABLE1 ./decoder_push_cache_and_blocks 0 10.10.10.1 ‘{net_instance_id:superpod1_1,endpoint_list:[{protocol:roce,comm_id:1.0.0.2,placement:host}],version:1.3}’(3) 执行switch_roles此样例介绍了prompt和decoder进行角色切换并结合pull以及push使用流程执行prompt_switch_roles, 参数为device_id、local_ip和remote_ip, 其中device_id为prompt要使用的device_id, local_ip为prompt所在host的ip, remote_ip为decoder所在host的ip如:./prompt_switch_roles 0 10.10.170.1 10.170.10.1执行decoder_switch_roles, 参数为device_id、local_ip和remote_ip, 其中device_id为decoder要使用的device_id, local_ip为decoder所在host的ipremote_ip为prompt所在host的ip如:./decoder_switch_roles 2 10.170.10.1 10.170.10.12. HIXL样例说明所有样例需要成对运行client侧和server侧执行间隔时间不要过长client-server用例中设置WAIT_REG_TIME为5sWAIT_TRANS_TIME为20sserver-server用例中设置WAIT_TIME为5s用户可根据实际情况自行修改这两个变量的值以保证用例成功运行。下面所有用例都只能在单机上执行local_engine和remote_engine的ip部分设为相同server侧engine为ip:port形式client侧engine为ip形式。如果需要多机执行需对用例进行改造。配置环境变量若运行环境上安装的“Ascend-cann-toolkit”包环境变量设置如下source ${HOME}/Ascend/cann/set_env.sh“${HOME}/Ascend”请替换相关软件包的实际安装路径。若运行环境上安装的“CANN-XXX.run”包环境变量设置如下source ${HOME}/Ascend/latest/bin/setenv.bash“${HOME}/Ascend”请替换相关软件包的实际安装路径。在运行环境执行可执行文件。(1) 执行client_server_h2d, client-server模式h2d场景执行client client_server_h2d, 参数为device_id、local engine和remote engine, 其中device_id为client要使用的device_id如:HCCL_INTRA_ROCE_ENABLE1 ./client_server_h2d 0 10.10.10.0 10.10.10.0:16000执行server client_server_h2d, 参数为device_id、local engine, 其中device_id为server要使用的device_id, 如:HCCL_INTRA_ROCE_ENABLE1 ./client_server_h2d 1 10.10.10.0:16000(2) 执行server_server_d2d, 均作为serverd2d场景执行server1 server_server_d2d, 参数为device_id、local engine和remote engine, 其中device_id为当前engine要使用的device_id, 如:HCCL_INTRA_ROCE_ENABLE1 ./server_server_d2d 0 10.10.10.0:16000 10.10.10.0:16001执行server2 server_server_d2d, 参数为device_id、local engine和remote engine, 其中device_id为当前engine要使用的device_id, 如:HCCL_INTRA_ROCE_ENABLE1 ./server_server_d2d 1 10.10.10.0:16001 10.10.10.0:16000注HCCL_INTRA_ROCE_ENABLE1表示使用RDMA进行传输(3) 执行fabric_mem_d2d, fabric mem模式下d2d场景注意要使用fabric mem模式HDK需升级至26.0以上版本执行server1 fabric_mem_d2d, 参数为device_id、local engine和remote engine, 其中device_id为当前engine要使用的device_id如:./fabric_mem_d2d 0 127.0.0.1:16000 127.0.0.1:16001执行server2 fabric_mem_d2d, 参数为device_id、local engine和remote engine, 其中device_id为当前engine要使用的device_id, 如:./fabric_mem_d2d 1 127.0.0.1:16001 127.0.0.1:16000【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/hixl C++示例指南

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

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

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

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

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

机器学习数据准备度评估:可视化、超参数优化与SHAP分析实践指南

1. 项目概述:为什么数据准备度是ML项目的“隐形地基”在机器学习项目里,我们常常把80%的精力花在模型调优和算法选择上,但根据我过去几年参与和主导的多个工业级项目经验,真正决定项目成败的,往往是那看似不起眼的前期…...

系统中文件管理—计算机等级—软件设计师考前备忘录—东方仙盟

在使用已经存在的文件之前,要通过 “打开 (open)” 文件操作建立起文件和用户之间的联系,目的是把文件的控制管理信息从辅存读到内存。打开文件应完成如下功能:在内存的管理表中申请一个空表目,用来存放该文件的文件目录信息。根据…...

AI眼科医疗:从CNN、GAN到RNN的疾病诊断与预测技术演进

1. 项目概述:当AI遇见眼睛,一场精准医疗的革命作为一名在医疗影像AI领域摸爬滚打了十来年的从业者,我亲眼见证了技术如何一步步从实验室走向临床,尤其是在眼科这个“窗口”领域。今天想和大家深入聊聊的,就是“AI在眼科…...

中小团队如何利用taotoken统一管理多模型api密钥与访问控制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 中小团队如何利用 Taotoken 统一管理多模型 API 密钥与访问控制 对于中小型技术团队而言,随着项目迭代和 AI 应用场景的…...

6G边缘计算与生成式AI融合:基于LDM与DRL的协同优化架构实践

1. 项目概述:当6G边缘计算遇上生成式AI最近和几个做通信和AI的朋友聊天,大家不约而同地提到了一个词:6G边缘生成式AI。这听起来像是把几个最前沿的技术名词硬凑在一起,但当你真正拆开来看,会发现它背后指向的是一个非常…...

AI赋能非洲医疗:疾病预测模型落地实战与挑战解析

1. 项目概述:当AI遇见非洲医疗的十字路口“AI赋能非洲医疗”,这个标题背后,远不止是一个技术应用的故事,它更像是一场在资源、文化与技术之间寻找平衡点的深刻实践。作为一名长期关注技术落地与全球健康议题的从业者,我…...

CANN/ops-transformer FlashAttention V2

aclnnFlashAttentionScoreV2 【免费下载链接】ops-transformer 本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-transformer 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DTAtlas A…...

基于聚类与成熟度模型的城市碳排放报告绩效评估方法与实践

1. 项目概述:当数据挖掘遇上城市碳排放管理在环境科学与城市治理的交叉领域,我们面临一个日益严峻的挑战:如何从海量、异构且质量参差不齐的城市碳排放报告中,提炼出真正能指导决策的洞见?传统的报告审阅方式早已力不从…...

CANN/catlass TLA张量详解

TLA Tensors 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 本文介绍 TLA 中的 Tensor。 如果说 Layout 负责描述“逻辑坐标如何映射到内存”&#xf…...

AI驱动蛋白质工程:从语言模型与拓扑数据分析到高效工作流构建

1. 项目概述:当AI遇见蛋白质工程 蛋白质,作为生命活动的核心执行者,其功能多样性令人惊叹。从催化生化反应的酶,到识别外来抗原的抗体,再到传递信号的受体,蛋白质几乎参与了所有生命过程。蛋白质工程&#…...

小红书无水印下载工具终极指南:5分钟快速上手的完整教程

小红书无水印下载工具终极指南:5分钟快速上手的完整教程 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&a…...

CANN/NDDMA多维数据搬运优化

深入理解NDDMA多维数据搬运:昇腾算子开发性能优化利器 【免费下载链接】cann-learning-hub CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.…...

DouyinLiveRecorder:一键录制40+平台直播的终极解决方案

DouyinLiveRecorder:一键录制40平台直播的终极解决方案 【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twitcasting、wink…...

工业踩坑实录(十七):从40分到高分:工业零件OCR,通用模型一上来就给我打脸

从40分到高分:工业零件OCR,通用模型一上来就给我打脸 工业零件上印一行字,你以为直接丢给OCR就能认。现实是,通用模型跑上去,准确率四十来分,跟瞎猜差不多。 2026-05-08 更新: 发这篇文章之前收…...

Python自动化抓取同花顺问财数据:量化投资的终极解决方案

Python自动化抓取同花顺问财数据:量化投资的终极解决方案 【免费下载链接】pywencai 获取同花顺问财数据 项目地址: https://gitcode.com/gh_mirrors/py/pywencai 还在为获取股票数据而烦恼吗?每天手动登录同花顺问财网站,复制粘贴数据…...

RKDevTool.exe对update.img进行拆包和重新合并

...

交通预测实战:从数据到模型,构建AI驱动的时空预测系统

1. 项目概述:为什么交通预测值得用AI重做一遍?干了这么多年数据分析和算法工程,我越来越觉得,交通预测是个典型的“看起来简单,做起来掉坑”的领域。早些年,大家用ARIMA、卡尔曼滤波,后来上了一…...

超级个体崛起:一人公司(One-Person Company)的技术栈——软件测试从业者的全能武器库

在AI重构生产关系的2026年,“一人公司”已从概念变为触手可及的商业现实。对于深谙质量保障、逻辑严谨且具备工程化思维的软件测试从业者而言,这不仅是职业发展的备选路径,更是一次将“技术债”转化为“数字资产”的价值跃迁。当“单人成军”…...

Spring AI 1.0.7、1.1.6、2.0.0-M6 发布:143 项更新,含重要改进与安全修复

2026 年 5 月 8 日,Spring AI 1.0.7、1.1.6、2.0.0 - M6 版本正式发布,带来 143 项改进、错误修复和文档更新,还包含多项安全修复程序。版本总体亮点此次发布的三个版本在改进、稳定性、文档和安全性方面均有提升。共进行 42 项增强改进&…...

Council框架:构建可编排的智能决策委员会系统

1. 项目概述:从单体应用到分布式决策的演进在软件架构的演进历程中,我们常常面临一个核心挑战:如何将复杂的业务逻辑从臃肿的单体应用中剥离出来,构建出清晰、可维护且具备高内聚、低耦合特性的系统。传统的做法是引入微服务架构&…...

在多轮对话应用中如何利用Taotoken的路由能力保障服务连续性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在多轮对话应用中如何利用Taotoken的路由能力保障服务连续性 多轮对话应用的核心在于维持连贯的上下文,为用户提供流畅…...

UE5 GameFeature创建与使用

UE5 的 GameFeature 机制,本质是将游戏功能拆解为独立的、可动态加载/卸载的模块。其设计目标聚焦于以下工程问题: 大世界与长线运营项目:如《堡垒之夜》在节日期间临时注入限时玩法(扔雪球、礼物空投),活…...

教育AI信任构建:透明度与可解释性如何破解多利益相关者困局

1. 项目概述:当AI走进课堂,我们到底在担心什么?最近和几位在一线教学的朋友聊天,发现一个挺有意思的现象:学校采购了一批据说能“智能批改作文”、“个性化推荐习题”的AI教学工具,但老师们用起来的积极性并…...

生成式AI重塑智能座舱:从多模态交互到车端部署的工程实践

1. 项目概述:当生成式AI“坐”进驾驶舱最近几年,生成式AI的浪潮席卷了各行各业,从写诗作画的ChatGPT、Midjourney,到能编程的Copilot,大家已经见怪不怪了。但你可能没太留意,这股风其实早就吹进了汽车行业&…...

可解释AI(XAI)技术解析:从原理到行业落地实践

1. 项目概述:为什么我们需要“看得懂”的AI?最近几年,AI模型的能力边界被不断刷新,从能写诗作画的生成式模型,到能精准预测蛋白质结构的AlphaFold,其表现常常令人惊叹。然而,一个越来越突出的矛…...

CANN/pypto设置立方体切片形状

pypto.set_cube_tile_shapes 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A2 …...

CANN学习中心:AddCustom算子工程示例

完整示例:AddCustom 算子工程 【免费下载链接】cann-learning-hub CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.com/cann/cann-learning-…...