news 2026/5/6 8:34:21

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:39:22

2025最新即时通讯源码 带搭建教程

源码介绍&#xff1a;看了下&#xff0c;自带了mt管理器&#xff0c;教程是文本的。未测试。不会app&#xff0c;仅有apk文件&#xff0c;应该是编译版&#xff0c;下载地址&#xff08;无套路&#xff0c;无须解压密码&#xff09;https://pan.quark.cn/s/0bd3808530e7源码截图…

作者头像 李华
网站建设 2026/5/1 11:45:11

推荐一款好用的开源免费Java CMS网站后台内容管理系统

目前&#xff08;2025-2026年&#xff09;真正活跃、开源、免费、可商用且基于Java的CMS系统中&#xff0c;社区活跃度、更新频率、易用性综合来看&#xff0c;以下几款最值得推荐&#xff08;按推荐优先级排序&#xff09;&#xff1a; 排名CMS名称技术栈开源协议活跃度&…

作者头像 李华
网站建设 2026/4/30 23:34:54

在kylin中用docker安装python 3.14.3版并安装软件包

1.拉取镜像&#xff0c;建立容器kylinkylin:/shujv/par$ sudo docker pull python:3.14.3 [sudo] kylin 的密码&#xff1a; 3.14.3: Pulling from library/python 1bd4defc8c5e: Pull complete cace8fbd9245: Pull complete bc8128ce97cc: Pull complete 642b703f20ff: Pul…

作者头像 李华
网站建设 2026/4/23 9:20:25

【YOLOv12多模态涨点改进】独家创新首发| TGRS 2025 | 引入CGSAFusion跨模态门控注意力融合模块,通过自注意力机制 和 门控融合提升多模态信息融合,助力红外与可见光检测高效涨点

一、本文介绍 🔥本文给大家介绍使用 CGSA(Cross-Domain Gated Self-Attention)跨模态门控注意力融合模块 改进 YOLOv12 多模态目标检测 模型,可以通过自注意力机制和门控融合动态增强可见光与红外图像之间的特征交互,显著提升小目标检测能力。CGSA 通过频域信息和时域差…

作者头像 李华
网站建设 2026/5/6 1:33:41

【YOLOv12多模态涨点改进】独家创新首发 | TGRS 2025 | 引入FDFEF频域特征增强融合模块,通过减少背景噪声和提高目标特征的可区分性,适用水下遥感图像实例分割、小目标检测任务

一、本文介绍 🔥本文给大家介绍使用 FDFEF频域特征增强融合模块 改进 YOLOv12 多模态网络模型,能够通过频域特征增强和模态特征交互显著提高小目标检测精度,特别是在复杂背景和低对比度环境下。FDFEF 通过频域增强优化了可见光与红外图像之间的特征融合,减少了背景干扰和…

作者头像 李华