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

CANN shmem 在多模型共驻场景下的安全隔离架构

相关链接:

  • CANN 组织主页:https://atomgit.com/cann
  • shmem 仓库地址:https://atomgit.com/cann/shmem

前言

在 CANN(Compute Architecture for Neural Networks)高性能通信生态中,SHMEM(Shared Memory Communication Library)作为面向多机多卡场景的内存通信库,为通算融合类算子(如 matmul+allreduce)提供了低延迟、高带宽的跨设备直接内存访问能力。随着 AI 推理服务向多租户、多模型共驻(Multi-Model Co-Hosting)架构演进,多个独立模型可能共享同一物理集群资源。在此背景下,如何确保不同模型间的数据隔离、权限控制与故障域分离,成为 SHMEM 必须解决的核心安全问题。

一、多模型共驻场景的安全挑战

在典型部署中,一台服务器可能同时运行:

  • 模型 A:金融风控 LLM(高敏感数据);
  • 模型 B:公开客服 Bot(低敏感数据);
  • 模型 C:内部测试模型(不可信代码)。

若 SHMEM 缺乏隔离机制,将导致以下风险:

  • 数据泄露:模型 B 意外读取模型 A 的 KV Cache;
  • 越权访问:模型 C 通过伪造地址写入模型 A 的权重;
  • 拒绝服务:模型 C 耗尽共享内存池,导致模型 A OOM;
  • 中间人攻击:跨节点通信被窃听或篡改。

SHMEM 通过Team 通信域 + TLS + UniqueID三位一体机制应对上述风险。


二、整体安全架构:三层隔离模型

SHMEM 的安全隔离采用分层设计:

用户模型进程

Team 通信域
(逻辑隔离)

TLS 加密通道
(传输安全)

UniqueID 命名空间
(物理资源隔离)

底层 xDMA/MTE 引擎

图1:SHMEM 三层安全隔离模型


三、第一层:Team 通信域 —— 逻辑隔离边界

SHMEM 引入Team(通信域)概念,作为所有通信操作的基本单元。每个 Team 是一个封闭的进程组,仅组内成员可互相访问内存。

3.1 Team 创建与成员管理

用户通过aclshmemx_team_create创建隔离域:

// examples/matmul_allreduce/main.cppaclshmemx_team_t team_A;// 金融模型通信域aclshmemx_team_create(&team_A,world_team,/*member_ranks=*/{0,1,2,3},/*num_members=*/4);aclshmemx_team_t team_B;// 客服模型通信域aclshmemx_team_create(&team_B,world_team,/*member_ranks=*/{4,5,6,7},/*num_members=*/4);

两个 Team 成员无交集,天然隔离。

3.2 内存分配绑定 Team

所有共享内存分配均绑定到特定 Team:

void*ptr_A=aclshmemx_malloc(team_A,1_GB);// 仅 team_A 可访问void*ptr_B=aclshmemx_malloc(team_B,1_GB);// 仅 team_B 可访问

若模型 B 尝试访问ptr_A,SHMEM 驱动层将返回ACL_ERROR_INVALID_PARAM


四、第二层:TLS 传输加密 —— 防窃听与篡改

SHMEM 默认启用TLS 1.3加密所有跨节点通信,防止中间人攻击。

4.1 TLS 配置接口

用户可通过 API 控制 TLS 行为:

// 关闭 TLS(仅限可信内网)int32_tret=aclshmemx_set_conf_store_tls(false,NULL,0);// 开启 TLS 并指定证书constchar*tls_info="cert_path=/etc/shmem/cert.pem;key_path=/etc/shmem/key.pem";ret=aclshmemx_set_conf_store_tls(true,tls_info);

⚠️ 注意:TLS 配置必须在aclshmemx_init前调用(见 FAQ Q4)。

4.2 加密实现细节

SHMEM 基于 OpenSSL 实现 TLS 握手与数据加密:

// src/transport/tls_transport.cppStatusTLSTransport::Handshake(intpeer_rank){SSL_set_fd(ssl_,socket_fd_);SSL_set_connect_state(ssl_);// Client// 或 SSL_set_accept_state(ssl_); // Serverintret=SSL_do_handshake(ssl_);if(ret!=1){LOG(ERROR)<<"TLS handshake failed with rank "<<peer_rank;returnStatus::NETWORK_ERROR;}returnStatus::OK();}StatusTLSTransport::Send(constvoid*data,size_t size){intsent=SSL_write(ssl_,data,size);if(sent!=size){returnStatus::NETWORK_ERROR;}returnStatus::OK();}

所有 RDMA/xDMA 数据在传输前均经 TLS 加密,即使物理链路被监听也无法解密。


五、第三层:UniqueID 命名空间 —— 物理资源隔离

为防止不同 Team 间因地址冲突导致误访问,SHMEM 引入UniqueID机制,为每个 Team 分配全局唯一标识符,并将其嵌入物理地址空间。

5.1 UniqueID 生成与绑定

aclshmemx_init_attr中指定 UniqueID:

// scripts/run.sh 示例aclshmemx_init_attr_t attr;attr.unique_id=generate_unique_id();// 如 UUIDv4aclshmemx_init_attr(ACLSHMEMX_INIT_WITH_DEFAULT,&attr);

PR #116(2026-02-10)强化了aclshmemx_set_attr_uniqueid_args的参数校验,防止 ID 冲突。

5.2 地址空间隔离实现

SHMEM 驱动层将 UniqueID 编码到虚拟地址高位:

// src/device/gm2gm/engine/mte_engine.cppuint64_tMteEngine::EncodeRemoteAddr(void*remote_ptr,uint64_tunique_id){// 高 32 位:UniqueID// 低 32 位:原始指针偏移return(unique_id<<32)|(reinterpret_cast<uint64_t>(remote_ptr)&0xFFFFFFFFULL);}boolMteEngine::ValidateAccess(uint64_tencoded_addr,uint64_tlocal_unique_id){uint64_ttarget_id=encoded_addr>>32;returntarget_id==local_unique_id;// 仅允许访问同 ID 空间}

若模型 B 使用模型 A 的指针发起访问,ValidateAccess将返回 false,触发硬件异常。


六、资源配额与故障隔离

除安全隔离外,SHMEM 还提供资源控制能力:

6.1 共享内存池大小限制

初始化时指定本地内存池上限:

aclshmemx_init_attr_t attr;attr.local_mem_size=16_GB;// 默认 16GB,可按模型需求调整aclshmemx_init_attr(ACLSHMEMX_INIT_WITH_DEFAULT,&attr);

防止单个模型耗尽全局内存。

6.2 异常传播限制

SHMEM 通信错误(如超时、校验失败)仅影响当前 Team,不会扩散至其他 Team。例如:

// model_B 发送失败ret=aclshmemx_put(team_B,dst_ptr,src_ptr,size,dst_rank);if(ret!=ACL_SUCCESS){// 仅 model_B 报错,model_A 不受影响HandleErrorForModelB();}

七、实践案例:多模型推理服务部署

在某金融云平台,SHMEM 被用于部署三个共驻模型:

模型Team IDUniqueIDTLS内存配额
风控 LLMteam_0uuid-finance-01启用32 GB
客服 Botteam_1uuid-public-02启用8 GB
测试模型team_2uuid-test-03关闭(内网)4 GB

通过 SHMEM 的三层隔离,三者互不干扰,且风控模型数据零泄露。


八、安全加固建议

根据SECURITY.md,生产环境应:

  1. 强制启用 TLS,即使内网也建议使用自签名证书;
  2. UniqueID 由中心化服务分配,避免客户端伪造;
  3. 定期轮换 TLS 证书
  4. 限制 Team 成员列表,禁止动态加入未知 rank。

九、未来方向

社区正在探索:

  • 基于 eBPF 的运行时访问控制
  • 硬件级内存加密(如 AMD SEV 类似机制);
  • 与 Kubernetes Namespace 集成,自动映射 Pod 到 Team。

结语

CANN shmem 通过Team 逻辑域、TLS 传输加密、UniqueID 物理命名空间三层安全隔离架构,在多模型共驻场景中实现了数据保密性、完整性与可用性的统一保障。它不仅是高性能通信库,更是构建可信 AI 基础设施的安全基石。随着 CANN 生态对生产级安全需求的持续演进,shmem 的隔离机制将持续增强,为 AI 服务提供更强安全保障。


相关链接:

  • CANN 组织主页:https://atomgit.com/cann
  • shmem 仓库地址:https://atomgit.com/cann/shmem
http://www.jsqmd.com/news/368977/

相关文章:

  • 2026年正规的小胸内衣,超薄内衣店优质品牌推荐名录 - 品牌鉴赏师
  • AI写论文快速上手!这4款AI论文生成工具,开启论文写作新体验!
  • 2026年中国访客机品牌发布:以访客云Fonkalink为代表的标杆企业深度解析 - 品牌推荐
  • 2026年第一季度时序数据库3大迁移难点全解析——从“审慎评估”到“平稳过渡”的实施路径
  • 2026 成都英语雅思培训教育机构推荐、雅思培训课程中心权威口碑榜单 - 老周说教育
  • 吃透Java操作符终阶:单目+关系+逻辑+条件+优先级 全解析
  • CANN shmem 共享内存通信模型的进程间同步机制
  • 2026 重庆英语雅思培训教育机构推荐、雅思培训课程中心权威口碑榜单 - 老周说教育
  • 时序数据库迁移的关键挑战与应对策略解析
  • CANN shmem 的原子操作语义与内存一致性保障
  • AI写论文的宝藏利器!4款AI论文写作工具,解决职称论文难题!
  • AI数学基础补漏:线性代数核心概念(向量)通俗解读
  • 我的 Project Euler 记录
  • P1073 [NOIP 2009 提高组] 最优贸易
  • 【Java 开发日记】我们来说一下 TCP 的三次握手四次挥手过程
  • 2026 重庆英语雅思培训教育机构推荐:雅思培训课程中心权威口碑榜单 - 老周说教育
  • 华为eNSP综合实验之- 掩码反掩码和通配符适用场景
  • 2026年智能访客管理深度盘点:基于技术整合与场景适配维度下的访客机品牌榜单 - 品牌推荐
  • 2026 成都英语雅思培训教育机构推荐;雅思培训课程中心权威口碑榜单 - 老周说教育
  • 五大经典排序算法:插入、希尔、冒泡、选择、堆排序全攻略
  • 2026年评价高的tpu导电塑料/导电塑料改性厂家推荐参考 - 品牌宣传支持者
  • 2026年比较好的液压折弯机模具/标准折弯机模具行业内知名厂家推荐 - 品牌宣传支持者
  • 2026 重庆英语雅思培训教育机构推荐,雅思培训课程中心权威口碑榜单 - 老周说教育
  • 2026 重庆英语雅思培训教育机构推荐;雅思培训课程中心权威口碑榜单 - 老周说教育
  • 2026 杭州英语雅思培训教育机构推荐;雅思培训课程中心权威口碑榜单 - 老周说教育
  • 2026年2月深度盘点:基于技术创新与场景适应性维度下的智能访客机品牌榜单 - 品牌推荐
  • 2026年评价高的高精度折弯模具/无痕折弯模具厂家口碑推荐汇总 - 品牌宣传支持者
  • 一文讲透|继续教育专属AI论文平台 —— 千笔写作工具
  • 2026年2月防拍屏水印溯源公司实战报告:主流服务商技术能力及防护效能对比 - 品牌推荐
  • [AI tradingOS] 认证与用户管理 | 2FA | TOTP | JWT - 详解