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

昇腾SHMEM故障排除指南

SHMEM 使用限制【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmemGM2GM的highlevel RMA操作使用默认buffer不支持并发操作否则可能造成数据覆盖。若有并发需求建议使用lowlevel接口。barrier接口当前必须在Mix Kernel包含mmad和GM2UB/UB2GM操作中使用可参考example样例。该限制待编译器更新后移除。使用RDMA的高阶接口前需要先使用aclshmemx_rdma_config接口配置UB Buffer和sync_id等信息。若不配置则使用默认的190KB处的UB Buffer和EVENT_ID0作为接口内部的同步EVENT_ID。RDMA相关接口内部使用PipeBarrierPIPE_MTE3阻塞MTE3流水以确保RDMA任务下发完成。使用SDMA的高阶接口前需要先使用aclshmemx_sdma_config接口配置UB Buffer和sync_id等信息且需要保证预留UB Buffer大小大于等于64字节。若不配置则使用默认的191KB处的UB Buffer和EVENT_ID0作为接口内部的同步EVENT_ID。910B 16卡机型NPU分为前八卡后八卡两个8P Fullmesh组每个8P组内通过HCCS总线完成两两互联两个8P Fullmesh组之间通过PCIe-SW完成互连因此不支持直接使用MTE接口在跨组NPU间完成数据搬运。部分example用例使用MTE搬运接口单机用例请勿跨组指定NPU以防发生未知报错如流同步失败等。910C D2H/D2rH等功能需要确保Host内存DRAM可用空间大于aclshmemx_init_attr_t初始化过程中pe分配的local_mem_size大小。因为HCCS总线上DRAM地址范围是固定的部分环境上并不是所有DRAM都在HCCS固定的总线地址范围内只有和HCCS总线固定的地址交集部分才是可用的DRAM空间。确认DRAM可用空间方法通过lsmem查询本机物理地址范围和如下4个地址区间取交集0x29580000000-0x34000000000 0xa9580000000-0xb4000000000 0x129580000000-0x134000000000 0x1a9580000000-0x1b4000000000得到具体可用的DRAM容量。如果没有交集表示当前没有可用DRAM空间或可用空间小于配置的local_mem_size则不支持该功能。SHMEM 常见问题内存分配相关问题aclshmem_malloc多卡分配非对称共享内存Q: 算子精度问题无error日志发现共享内存访问到的数据异常;错误示例代码:以example目录下的allgather_matmul为例以下为非对称共享内存分配分配的简单示例场景// Inappropriate calling of aclshmem_malloc void *symmTest nullptr; symmTest aclshmem_malloc(((rank_id 1) * 1024 * 1024) * sizeof(__fp16)); void *symmPtr aclshmem_malloc((204 * 1024 * 1024) * sizeof(__fp16)); uint8_t *gmSymmetric (uint8_t *)symmPtr; ... ... aclshmem_free(symmPtr); if (symmTest ! nullptr) { aclshmem_free(symmTest); }A: 可使用debug模式排查共享内存分配对称性问题debug模式开启方法在代码仓根目录下执行bash scripts/build.sh -examples -debug此时执行代码获得如下报错确认错误为使用aclshmem_malloc接口分配了非对称的共享内存错误原因分析示意图:修正方式: 确保每个rank分配相同大小的共享内存aclshmemx_set_attr_uniqueid_args对每个pe设置了不同的local_mem_sizeQ: 提示local size diffs错误调用代码片段:aclshmemx_init_attr_t attributes; aclshmemx_uniqueid_t uid ACLSHMEM_UNIQUEID_INITIALIZER; int64_t local_mem_size (1024 pe * 2) * 1024 * 1024; if (pe 0) { status aclshmemx_get_uniqueid(uid); } MPI_Bcast(uid, sizeof(aclshmemx_uniqueid_t), MPI_UINT8_T, 0, MPI_COMM_WORLD); status aclshmemx_set_attr_uniqueid_args(pe, pe_size, local_mem_size, uid, attributes); status aclshmemx_init_attr(ACLSHMEMX_INIT_WITH_UNIQUEID, attributes);错误日志:注意:日志中显示的实际分配大小和local_mem_size大小有6MB的差异为shmem框架内部使用空间此处local_mem_size大小为2MB对齐若尝试分配其他大小如1025 * 1024 * 1024可能会出现不同的错误信息:A: 应保证aclshmemx_init_attr_t初始化过程中每pe分配的local_mem_size大小一致IP/PORT配置相关问题绑定端口被占用Q: 尝试使用的ip/port已被占用错误日志如图:端口被占用错误日志:ip不可用错误日志1:ip不可用错误日志2:A: 逐步排查ip及端口可用情况确认ip是否符合预期检查端口是否被占用netstat -tuln | grep 端口号调整环境变量SHMEM_UID_SESSION_ID及实际执行文件所使用的ip及端口号未通过环境变量配置ip/port使用默认eth查询ip信息失败Q:SHMEM_UID_SESSION_ID和SHMEM_UID_SOCK_IFNAM均未配置时使用eth:inet4查询本地ip地址查询失败时错误日志如下:A: 应手动配置SHMEM_UID_SESSION_ID或SHMEM_UID_SOCK_IFNAM配置示例:SHMEM_UID_SESSION_ID:SHMEM_UID_SESSION_ID127.0.0.1:1234SHMEM_UID_SOCK_IFNAM:SHMEM_UID_SOCK_IFNAM[6666:6666:6666:6666:6666:6666:6666:6666]:886SHMEM_UID_SOCK_IFNAMenpxxxx:inet4取ipv4SHMEM_UID_SOCK_IFNAMenpxxxx:inet6取ipv6注意: 同时配置时只读取SHMEM_UID_SESSION_ID调试相关编译问题Q:自行添加-O0 -g编译选项调试编译出错bisheng: error: xxxxx will be ignored. [-Werror -Woption-ignored]A:SHMEM根目录的CMakeLists.txt的-Werror选项导致编译器告警被作为错误处理注释掉-Werror编译选项即可解决。算子问题Q:算子使用-O0 -g编译选项编译后运行出错min stack size is xxx, larger than current process default size 32768. Please modify aclInit json, and reboot process.A:在aclInit()接口传入的json文件中配置更大的栈空间。配置参考【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

昇腾SHMEM故障排除指南

SHMEM 使用限制 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem GM2GM的highlevel RMA操作使用默认buffer&…...

ChatPaper离线模型支持终极指南:如何用本地部署开源LLM实现完全隐私保护论文总结

ChatPaper离线模型支持终极指南:如何用本地部署开源LLM实现完全隐私保护论文总结 【免费下载链接】ChatPaper Use ChatGPT to summarize the arXiv papers. 全流程加速科研,利用chatgpt进行论文全文总结专业翻译润色审稿审稿回复 项目地址: https://gi…...

可解释AI如何重塑医学系统综述:从黑箱到透明决策的实践

1. 项目概述:当AI的“黑箱”遇上严谨的医学证据如果你做过系统文献综述,尤其是医学领域的,你肯定知道那是个什么滋味。那是一个体力、脑力和意志力的三重考验:从海量数据库中检索成千上万的文献,然后像淘金一样&#x…...

Python整数有上限吗?揭秘动态大整数的原理与工程边界

1. 这个问题比你想象的更根本:Python整数到底有没有“最大值”?很多人第一次听说“Python最大整数”时,下意识会去查sys.maxint或sys.maxsize,然后发现结果要么报错,要么是个看起来很奇怪的数字(比如 92233…...

GRU与注意力机制在ICU多重耐药菌感染预测中的实战应用

1. 项目概述:当重症监护室遇上AI预测 在重症监护室(ICU)里,时间是以分钟甚至秒来计算的。医生们面对的不仅是复杂的病情,还有像“多重耐药菌感染”这样的隐形杀手。这类感染一旦发生,意味着常规抗生素基本失…...

#86_【无标题】每次 .h 被 #include,就等于在所有包含它的 .c 文件中都复制了一份定义。

我在.h中定义了/CN:数码管段码表 (扫描引脚复用型)-- EN:Digital Tube Segment Code Table (Scan Pin Multiplexing Type)/ const uint8_t NUM_TAB[10] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; 但是这个时候突然间报错了所以感觉有意思 错误原因 Err…...

CANN/catlass分组矩阵乘反量化示例

GroupedMatmulSliceMPerTensorPerChannelDequant Example Readme 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 代码组织 ├── 48_ascend950_group…...

#85_库函数开发

前言 在很久很久很久以前 C 语言和 STM32 走在一条幽静的道路上 他们在一起过上了幸福的生活 一、 问题引入… 1 二、 寄存器的基础概念… 1 三、 STM32 寄存器实例解析… 3 GPIO 输入/输出 → 对应 GPIOx_CRL / GPIOx_CRH / GPIOx_IDR /… 3定时器(Timer&#xff…...

5个简单步骤:OpenCore Legacy Patcher终极指南让老旧Mac焕发新生

5个简单步骤:OpenCore Legacy Patcher终极指南让老旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升级到…...

Lobu多租户AI助手网关:安全隔离与规模化部署实践

1. 项目概述:构建企业级多租户AI助手网关 最近在折腾一个挺有意思的开源项目,叫Lobu。简单来说,它解决了一个很实际的问题:如何安全、高效地在一个组织内部署和管理多个独立的AI助手(Agent)。想象一下&…...

Koel下载功能终极指南:批量下载与压缩包生成的完整教程

Koel下载功能终极指南:批量下载与压缩包生成的完整教程 【免费下载链接】koel Music streaming solution that works. 项目地址: https://gitcode.com/gh_mirrors/ko/koel Koel作为一款优秀的个人音乐流媒体解决方案,其强大的下载功能让用户可以轻…...

如何快速掌握加密算法基础:面向初学者的完整指南

如何快速掌握加密算法基础:面向初学者的完整指南 【免费下载链接】Algorithms A collection of algorithms and data structures 项目地址: https://gitcode.com/gh_mirrors/algorithms39/Algorithms 想要快速掌握加密算法基础吗?加密算法是现代计…...

基于MPA的微前端架构:实现技术栈无关与独立部署的现代Web应用方案

1. 项目概述:一个为现代Web应用量身定制的微前端架构如果你正在为一个大型、多团队协作的Web应用寻找一个既能保持技术栈灵活性,又能实现高效集成与独立部署的解决方案,那么mattmezza/mpa这个项目绝对值得你花时间深入研究。它不是一个简单的…...

为什么你需要HolyTips:7个让漏洞赏金狩猎更高效的实用技巧

为什么你需要HolyTips:7个让漏洞赏金狩猎更高效的实用技巧 【免费下载链接】HolyTips A Collection of Notes, Checklists, Writeups on Bug Bounty Hunting and Web Application Security. 项目地址: https://gitcode.com/gh_mirrors/ho/HolyTips 在网络安全…...

深度学习在人工耳蜗中的应用:从语音增强到医学影像分析

1. 项目概述:当深度学习“听见”声音作为一名长期在医疗科技与信号处理交叉领域摸爬滚打的从业者,我见证过太多技术从实验室走向临床的艰难旅程。其中,“深度学习在人工耳蜗应用中的进展”这个话题,尤其让我感到兴奋。它远不止是一…...

CANN基础设施漏洞管理指南

cve-manager(漏洞管理)使用说明 【免费下载链接】infrastructure 本仓库用于托管CANN社区基础设施团队的公开信息,包括不限于:会议日程,成员信息,服务文档和配置等信息 项目地址: https://gitcode.com/ca…...

JAVA基础教学计划【欢迎指点】

学习JAVA,首先要了解Java语言的第一个特性——面向对象。编程语言就像我们现实生活中面对种种情景是一样的,可以说这是属于计算机的世界,我们人来到计算机世界自然要熟悉这个世界构成方式。在现实中,我们认识一件事物,…...

收藏!2026年普通人也能干的5个高薪AI新职业(无需代码,小白也能学)

文章介绍了5个无需编程技能的AI相关职业:AI训练师、AI内容运营、提示词工程师、AI数据标注员和AI销售顾问。这些职业为没有高学历或技术背景的人提供了进入AI行业的机会,强调了学习AI工具和技能的重要性,鼓励人们抓住AI时代的机遇。 2026年&a…...

CANN/ge添加输出API

AddOutput 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端…...

AI赋能边缘计算安全:从联邦学习到异常检测的实战指南

1. 项目概述:当边缘计算遇上AI,安全与隐私的十字路口最近几年,我身边做物联网、车联网和工业互联网项目的朋友,聊得最多的两个词,一个是“边缘计算”,另一个就是“AI”。把AI模型部署到摄像头、网关、工控机…...

AI思维:跨学科协作与负责任AI实践的核心方法论

1. 项目概述:为什么我们需要“AI思维”?如果你最近在尝试将人工智能技术引入你的工作流程,无论是分析市场数据、优化客户服务,,还是辅助科研实验,你很可能已经感受到了某种“割裂感”。工程师团队在讨论模型…...

AI for Science技术路线图:从量子尺度到连续介质的跨学科实践指南

1. 项目概述与核心价值如果你是一位物理化学背景的研究生,正试图用机器学习预测新催化剂的活性,却发现网上资料要么是纯AI教程,要么是深奥的量子化学专著,中间仿佛隔着一道鸿沟——那么,你找对地方了。这就是“AI for …...

在 Taotoken 控制台中如何进行 API Key 的权限管理与审计日志查看

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 控制台中如何进行 API Key 的权限管理与审计日志查看 对于团队管理员或项目负责人而言,有效管理 API Key …...

量子机器学习新范式:Classiq如何简化QML模型开发

量子机器学习新范式:Classiq如何简化QML模型开发 【免费下载链接】classiq-models The Classiq Library is the largest collection of quantum algorithms and applications. It is the best way to explore quantum computing software. We welcome community con…...

Linux Mem -- 通过reserved-memory缩减内存

目录 1. reserved-memory缩减内存 2. 为什么要通过2段512MB预留内存实现该缩减呢? 3. reserved-momery中的no-map属性 4. 预留的的内存是否会被统计到系统MemTotal中? 本文是解决具体的一些思考总结,和Linux内核的reserved-memory机制相关。 参考代码:Linux-6.10 1. re…...

如何理解KityMinder脑图编辑器的模块化命令系统设计原理 [特殊字符]

如何理解KityMinder脑图编辑器的模块化命令系统设计原理 🧠 【免费下载链接】kityminder 百度脑图 项目地址: https://gitcode.com/gh_mirrors/ki/kityminder KityMinder是一款由百度FEX团队开发的在线脑图编辑工具,它基于SVG技术实现&#xff0c…...

Front-End-Performance-Checklist错误处理终极指南:10个关键性能监控与异常捕获技巧

Front-End-Performance-Checklist错误处理终极指南:10个关键性能监控与异常捕获技巧 【免费下载链接】Front-End-Performance-Checklist 🎮 The only Front-End Performance Checklist that runs faster than the others 项目地址: https://gitcode.co…...

基于LAMP环境的校园论坛项目

目录 1.配置本地仓库: (1)修改主机名为自己姓名全拼 (2)在 /etc/yum.repo.d/ 目录下新建一个仓库文件yum.repo并编写文件内容 (3)光盘挂载到 /mnt 目录下。 (4)验证是否挂载成功。 2.关闭防火墙和SELinux服务 3.安装PHP环境 分别安装php、php-fpm 、php-mysqln…...

mac 安装指定node版本

我这里使用的是nvm(Node Version Manager)nvm(Node Version Manager)是一个允许你在同一台机器上安装和管理多个Node.js版本的工具。1.安装nvm打开终端,然后运行以下命令来安装nvm:bash:curl -o- https://r…...

1-论面向对象的建模及应用

软件系统建模是软件开发中的重要环节,通过构建软件系统模型可以帮助系统开发人员理解系统,抽取业务过程和管理系统的复杂性,也可以方便各类人员之间的交流。软件系统建模是在系统需求分析和系统实现之间架起的一座桥梁,系统开发人员按照软件系统模型开发出符合设计目标的软…...