1. Background

NCCL显存占用巨大,在强化学习场景,共卡模式,需要在rollout和actor间切换,因此在切换时往往需要卸载另一块的显存,此外,对于分离模式的权重同步的通信组,每个step只会使用一次,然而,他仍然会占据大量的显存,影响用户开较大的batchsize,因此,需要一个solution来卸载NCCL占用的显存;

2. Solution

Inclusion AI提出了Amem,核心基于CUDA的VMM API,设计了简介的两层解耦方案,实现对NCCL显存的透明卸载和恢复的三重功能保障;

具体而言:Code Dive

3. Code Dive

3.1. NCCL patch

amem首先提供针对NCCL2.27的小patch,本节详解amem对NCCL具体的改动