GPU 虚拟地址投毒
摘要 NVIDIA GPUDirect RDMA 和 CUDA 统一内存允许 GPU 直接访问另一块 GPU 的显存,其底层依赖 IOMMU 将虚拟地址映射到物理页。然而,在统一内存页面迁移期间,旧物理页的 IOMMU 映射可能未被及时刷新,导致 GPU A 在释放本地缓存后仍可通过 GPU B 访问到已被重分配的系统内存。攻击者可利用这一“虚拟地址投毒”缺陷,在容器化的多租户 GPU 集群中实施跨 GPU 数据窃取——读取其他容器的模型参数或推理数据,彻底打破 GPU 内存隔离。 CUDA Unified Memory 与 IOMMU 的协同 统一内存的虚拟地址抽象 CUDA 统一内存提供了一个单一的虚拟地址空间,CPU 和所有 GPU 均可访问。 当应用程序调用 cudaMallocManaged 分配统一内存时,CUDA 驱动在内部创建虚拟地址映射,但物理页最初可能仅在 CPU 端分配。当 GPU 第一次访问该地址时,触发缺页,驱动将页面迁移到 GPU 本地显存。后续若另一个 GPU 访问同一地址,页面可从第一个 GPU 的显存通过 NVLink 或 PCIe 直接迁移。…