SHMEM 对外头文件与库文件说明【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem范围对外公开接口头文件以及安装产物中的共享库.so。1. 库文件总览库文件类型用途依赖版本信息libshmem.so核心运行时Host 侧主库初始化、堆、Team、Host RMA/同步/集合通信等依赖ASCEND_HOME_PATH下 CANN 库runtime/ascendcl/tiling_api/platform/c_sec等链接libshmem_utils.soSOC_TYPEAscend950时另链hcommlibshmem_utils.so工具/支撑库日志、内部工具与公共支撑符号供主库与 bootstrap 插件链接无独立对外版本号UDMA 开启时编译期依赖 nlohmann/json 头文件aclshmem_bootstrap_config_store.soBootstrap 插件无lib前缀Default / UniqueID 初始化控制面Config Store。ACLSHMEMX_INIT_WITH_DEFAULT与ACLSHMEMX_INIT_WITH_UNIQUEID均加载本库运行时由 init 动态加载链接libshmem_utils.so无独立版本号aclshmem_bootstrap_uid.soBootstrap 插件UniqueID bootstrap 相关库链接libshmem_utils.so无独立版本号aclshmem_bootstrap_mpi.soBootstrap 插件可选MPI 模式 bootstrapCMakefind_package(MPI)成功时才编译链接MPI::MPI_CXX与libshmem_utils.so_pyshmem*.soPython 扩展可选pybind11 绑定供import shmem构建find_package(pybind11)链接libshmem.so等运行torch-npusetup.py说明Device 侧接口多为头文件内联Host 侧符号由libshmem.so提供。应用侧通常#include shmem.h链接-lshmem并保证libshmem_utils.so与实际使用的 bootstrap 插件可被动态链接器解析。2. 对外公开接口头文件列表统一入口shmem.h按 Host / Device / SIMT 条件包含下列头文件。2.1 总入口与公共定义对外公开接口文件对应 so 库文件文件用途依赖版本信息shmem.hHost 部分对应libshmem.so及 utils/bootstrapDevice/SIMT 部分无对外总头文件按编译宏聚合 Host / Device / SIMT 公开 APIDevice/SIMT 分支依赖编译宏如__CCE_AICORE__、USE_SIMT无独立外部版本号host_device/shmem_common_types.h无Host/Device 共用类型、枚举、ACLSHMEM_DEVICE等宏依赖 CANN 头文件acl/acl_rt.hhost_device/shmem_common_macros.h无Host/Device 共用宏无host/shmem_host_def.hlibshmem.soHost 侧常量、版本宏、ACLSHMEM_HOST_API、公共结构/枚举无外部版本约束仅定义本库 API 宏device/shmem_def.h无Device 侧公共定义与非连续拷贝等结构依赖 CANNUSE_SIMT时有条件分支2.2 Host 侧公开接口对外公开接口文件对应 so 库文件文件用途依赖版本信息host/init/shmem_host_init.hlibshmem.so 运行时加载 bootstrap 插件初始化/终结、UniqueId、init 状态查询、aclshmemx_init_attr等Default/UniqueID 加载aclshmem_bootstrap_config_store.soMPI 模式加载aclshmem_bootstrap_mpi.so需系统 MPIhost/mem/shmem_host_heap.hlibshmem.so对称堆分配malloc/calloc/align/free及扩展内存类型接口无host/team/shmem_host_team.hlibshmem.soTeam 创建/拆分/销毁、PE 翻译、my_pe/n_pes等无host/data_plane/shmem_host_rma.hlibshmem.soHost 侧 RMAput/get 等与aclshmem_ptr无host/data_plane/shmem_host_so.hlibshmem.soHost 侧 putsignal 同步/异步接口无host/data_plane/shmem_host_p2p_sync.hlibshmem.soHost 侧 P2P 同步、handle_wait、signal wait、ffts 配置获取无host/data_plane/shmem_host_cc.hlibshmem.soHost 侧集合通信barrier/sync 及 on_stream 变体无host/utils/shmem_log.hlibshmem.so/libshmem_utils.so外部 logger、日志级别、profiling 打印/获取无2.3 Device 侧公开接口GM↔GM / UB↔GM对外公开接口文件对应 so 库文件文件用途依赖版本信息device/gm2gm/shmem_device_rma.h无Device GM↔GM 标准 RMA多 dtype put/get 等依赖 CANN底层可走 MTE/RDMA/SDMA/UDMA由拓扑与编译选项决定device/gm2gm/shmem_device_so.h无Device 侧 putsignal 同步接口依赖 CANNdevice/gm2gm/shmem_device_amo.h无Device 原子操作atomic_add 等依赖 CANN头文件注明各引擎支持类型随 SoC如 UDMA 面向 Ascend950device/gm2gm/shmem_device_mo.h无Device 内存序quiet/fence依赖 CANNdevice/gm2gm/shmem_device_p2p_sync.h无Device P2P 同步signal_op、wait_until 等依赖 CANNdevice/gm2gm/shmem_device_cc.h无Device 集合通信barrier含 vector-only 等变体、ffts 地址设置依赖 CANN头文件限制主要用于 MIX Kerneldevice/gm2gm/engine/shmem_device_mte.h无MTE 引擎对称地址翻译、连续/非连续异步 put/get依赖 CANNdevice/gm2gm/engine/shmem_device_rdma.h无RDMA 引擎跨机/远端对称内存异步 RMA依赖 CANNHost 侧需开启ACLSHMEM_RDMA_SUPPORTAscend950 另需指定 RDMA backenddevice/gm2gm/engine/shmem_device_sdma.h无SDMA 引擎参数设置与异步 put/get依赖 CANNdevice/gm2gm/engine/shmem_device_udma.h无UDMA 引擎低阶异步 RMA依赖 CANN编译需ACLSHMEM_UDMA_SUPPORT且 Hcomm 提供所需 APICMaketry_compile检测面向 Ascend950device/ub2gm/shmem_device_rma.h无UB↔GM 标准 RMAUB 侧 get/put 等依赖 CANNdevice/ub2gm/engine/shmem_device_mte.h无UB↔GM 的 MTE 引擎异步拷贝依赖 CANNdevice/team/shmem_device_team.h无Device 侧 Team/PE 查询与 PE 翻译依赖 CANN2.4 Device SIMT 公开接口需开启 SIMT 支持对外公开接口文件对应 so 库文件文件用途依赖版本信息device_simt/shmem_simt_common_types.h无SIMT 公共状态/类型定义需编译定义USE_SIMTACLSHMEM_SIMT_SUPPORTdevice_simt/gm2gm/shmem_device_simt_rma.h无SIMT 作用域下的 GM↔GM RMA需USE_SIMT依赖 CANNdevice_simt/gm2gm/engine/shmem_device_simt_mte.h无SIMT MTEthread/block/warp 作用域异步拷贝需USE_SIMT依赖 CANNdevice_simt/team/shmem_device_simt_team.h无SIMT 侧 Team 相关接口需USE_SIMT依赖 CANN【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
未来已来:Agents-A1-OptiQ-4bit开启本地多模态AI应用新篇章 未来已来:Agents-A1-OptiQ-4bit开启本地多模态AI应用新篇章 【免费下载链接】Agents-A1-OptiQ-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Agents-A1-OptiQ-4bit Agents-A1-OptiQ-4bit是一款基于MLX框架的4位混合精度量化模型&#x…
Cocos2d-x游戏开发入门:跨平台框架实战指南 1. Cocos2d-x引擎初探:为什么选择这个开源框架第一次接触Cocos2d-x是在2015年接手一个2D手游项目时。当时团队需要在三个月内完成iOS和Android双端开发,经过技术选型对比后,我们最终选择了这个轻量级框架。七年过去,这个开源引擎已…
3分钟快速上手SingGuard-2b:零基础实现AI内容安全审核的完整指南 3分钟快速上手SingGuard-2b:零基础实现AI内容安全审核的完整指南 【免费下载链接】SingGuard-2b 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/SingGuard-2b SingGuard-2b是一款基于Qwen3-VL-2B-Instruct构建的策略自适应多模态AI内容安全审核…
老旧设备运行Windows 11与安卓子系统的技术方案 1. 老旧设备运行Windows 11的技术可行性分析在2021年微软发布的Windows 11系统要求中,TPM 2.0芯片和Secure Boot成为硬性门槛,这导致大量2018年前生产的设备被官方判定为"不兼容"。但通过技术手段,这些被排除在外的设备完全能够流畅…
嵌入式DSP开发中的SPI控制DAC实现与优化 1. 实验背景与目标解析 在嵌入式DSP开发中,数模转换(DAC)是实现数字信号处理系统与模拟世界交互的关键接口。本实验基于TL6748-PlusTEB教学实验箱,通过模拟SPI总线控制AD5724芯片实现可编程电压输出。不同于普通GPIO直接驱动&…
DeepAgents长期记忆机制与实战配置指南 1. DeepAgents长期记忆机制解析在AI助手领域,长期记忆能力一直是区分基础对话机器人和专业级智能体的关键特性。DeepAgents通过LangGraph Store实现的长期记忆系统,本质上构建了一个双层存储架构:瞬态存储层:处理当前对话的临时数…
Playwright网络请求拦截与模拟:从原理到实战的完整指南 1. 项目概述:为什么我们需要拦截与模拟网络请求?在自动化测试和网页爬虫的世界里,我们常常会遇到一个核心矛盾:我们想要测试或抓取的目标页面,其行为严重依赖于外部网络请求。比如,一个电商网站的“加入购物…
Miniconda企业级智能体微服务环境搭建实战 1. 项目概述:为什么智能体微服务开发绕不开Miniconda?做智能体开发的朋友,尤其是刚接触企业级微服务架构的,十有八九在第一天就被环境问题卡住——不是Python版本冲突,就是PyTorch和TensorFlow抢同一个CUDA驱动&#x…
年服务超4000人、进面率31%+,江苏粉笔基地班凭什么跑通? - 天涯视角 2026年江苏省考,43.8万人争夺8179个岗位,报录比约53.5:1。在这样一片红海里,江苏粉笔基地班交出了一组数据:笔试进面率超31%,面试上岸率超51%,状元上岸率高达83%。26省考中,基地班140分以上学员超40人,135分以上超100人…
VS Code 高效配置与个性化定制全攻略 1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像 在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…
WinRAR高效配置指南:从基础安装到高级压缩实战 前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…