GreenBoost:Linux 模块将 RAM 转换为 CUDA 内存,并彻底改变了 NVIDIA 的 LLM 的使用
随着GreenBoost的到来,当地人工智能发展场景正在发生重大转变。这一针对 Linux 内核的创新模块有望克服开发人员和研究人员面临的主要障碍之一:消费者 NVIDIA 卡上的视频内存 (VRAM) 限制。通过将系统 RAM 转换为 CUDA 架构可用的资源,GreenBoost 为直接在商用 PC 上运行复杂的大规模语言模型 (LLM) 打开了新的大门。
该计划由独立程序员 Ferran Duarri 开发,代表了大多数人无法使用高容量硬件(例如具有丰富 VRAM 的企业级 GPU)的环境中的一项重大进步。该解决方案侧重于优化现有资源的使用,即使在 VRAM 限制的情况下也能充分利用 NVIDIA GPU 的计算能力,从而促进开源 AI 的研究和开发。
在消费类设备上运行以前需要数十 GB 内存的模型(例如具有 31.8 GB 内存的“glm-4.7-flash:q8_0”)的能力几乎是无法克服的挑战。传统方法通常会导致性能瓶颈或推理质量下降,使得许多爱好者和小型开发人员无法与这些模型进行实际交互。
克服传统 VRAM 障碍
从历史上看,解决消费类 GPU 中 VRAM 短缺问题的策略一直很有限。最常见的解决方案之一是将神经网络的多余层卸载到 CPU 系统内存。然而,这种方法存在严重的性能问题。 CPU 内存中缺乏 CUDA 一致性,需要在 GPU 和 CPU 之间进行大量复杂的数据传输,从而造成瓶颈,可能使令牌生成速度降低多达十倍。
探索的另一个替代方案是大幅降低模型的量化水平。虽然这减少了对内存的需求,但随之而来的是法学硕士的推理和逻辑推理能力的显着下降。为了保持质量,唯一可行的选择是投资具有 48GB 或更多 VRAM 的企业级 GPU,这一费用超过了整个工作站的成本,对于预算有限的个人开发人员和初创公司来说是无法承受的。
更多相关报道: Nvidia 的新免费更新承诺将 RTX 显卡上的生成式 AI 加速速度高达 40%
GreenBoost 的创新三层架构
GreenBoost 不仅仅是一个驱动程序调整或权宜之计;是一个精心设计的 Linux 内核模块,在 GPLv2 下获得许可。它独立运行并与官方 NVIDIA 驱动程序并行,直接干预 CUDA 内存分配层。这种巧妙的干预使 GPU 驱动程序能够将系统 RAM 识别为“外部存储器”,从而创建一个在三个不同级别上运行的内存扩展架构,以优化性能和容量。
第一层称为 T1,是集成到 GPU 中的原始 VRAM。在使用 GeForce RTX 5070 的测试环境中,其容量为 12 GB,带宽约为 336 GB/s,该层成为计算的关键路径。它存储推理过程中最常访问的活动层,确保最苛刻的操作的最大速度。
第二级 T2 由主板系统的 DDR4 或 DDR5 RAM 内存组成。它通过 PCIe 4.0 x16 链路连接到 GPU,提供约 32 GB/s 的速度。该级别可作为静态模型权重数据的高效存储区域和大量键值 (KV) 缓存,这对于法学硕士维护和引用广泛的上下文至关重要,从而使 AI 能够处理更全面的信息。
最后,第三层安全性 T3 是 NVMe 存储。它被分配为交换空间,速度相对较慢,约为 1.8 GB/s,它被映射以吸收任何内存溢出。该层仅在特殊情况下(即 VRAM 和系统 RAM 完全耗尽时)发挥作用,为防止极端使用场景中的系统故障提供保护。
同一主题报道: PlayStation 5 Pro 降价加速数字零售销售并消除全球库存
集成背后的复杂性
GreenBoost 的技术智能在于内核和用户空间组件无缝协作的方式。内核模块(`greenboost.ko`)使用优化的内存分配器在 DDR4 中保留大页面空间,消除分页开销和碎片。这些空间被导出为 DMA-BUF 文件描述符,允许直接内存访问。
然后,GPU 通过“cudaImportExternalMemory” API 将这些操作系统页面导入为 CUDA 外部内存。此过程导致 CUDA 平台将物理 DDR4 页面解释为直接连接到显卡的内存,从而掩盖了主板架构。然后,数据移动通过 PCI Express 4.0 总线作为 DMA 传输进行管理,从而消除 CPU 不必要的复制周期。
在用户空间中,“libgreenboost_cuda.so”库充当智能拦截器。通过“LD_PRELOAD”动态插入,它拦截“cudaMalloc”和“cudaFree”等API调用。小分配请求直接路由到原始 VRAM,无延迟。然而,超出 VRAM 限制的大型请求将被重定向到内核中的 GreenBoost 模块,该模块从系统 RAM 中分配必要的内存,并将其作为合法的 CUDA 设备指针返回给应用程序。对于使用“dlopen”和“dlsym”的推理引擎,GreenBoost 有对策,拦截“dlsym”函数本身,甚至更改报告的 VRAM 容量以强制卸载到 RAM。
与优化器的协同作用和实际性能
GreenBoost 旨在与最新的推理方法配合使用,提供多方面的优化工具集。一个例子是它与 ExLlamaV3 的集成,ExLlamaV3 是一种推理引擎,原生支持 GreenBoost 提供的 KV 缓存层路径。这使得模型的 KV 张量可以通过 mmap 访问直接从 /dev/greenboost 分配到 Python,无需复制,从而消除了 I/O 开销并提高了性能。
对于超过 100,000 个令牌的长上下文,可以结合使用“kvpress”工具来减少系统 RAM 带宽的开销。更根本的是,与NVIDIA官方优化工具NVIDIA ModelOpt集成,可以将31.8GB模型转换为高效的FP8格式,无需重新训练,将大小减少到16GB以下。这种策略组合将 VRAM 分配给模型权重,将系统 RAM 分配给 KV 缓存,在 GeForce RTX 5070 上展示了每秒 10 到 25 个令牌 (tok/s) 的平均推理速度,与基准环境(2 到 5 tok/s)相比显着提高。
了解更多: Nvidia 的免费更新利用新技术将 RTX 卡上的 LLM 速度提高了 40%
PCIe 4.0 总线挑战
尽管 GreenBoost 是一种革命性的方法,但它并没有消除硬件的基本物理限制。开发人员 Ferran Duarri 对最大瓶颈持透明态度:最大 PCIe 4.0 x16 总线传输带宽约为 32 GB/s。虽然现代 GPU 的集成 VRAM 提供数百 GB/s,甚至在高端型号中超过 1 TB/s,但通过 PCIe 访问系统 RAM 的速度要慢得多,通常不到十分之一。
如果经常访问的模型权重数据在 VRAM 和系统 RAM 之间重复传输,这种“颠簸”将导致管道中出现相当大的延迟。同样,尽管 NVMe 驱动器对于顺序访问非常高效,但在推理期间处理小块中的数百万个随机访问操作时,交换层的性能可能会急剧下降。最大限度发挥 GreenBoost 潜力的理想解决方案不在于单个模块,而在于智能地划分工作负载,利用最新的参数量化技术(例如 FP8 和 INT4-AWQ)将 VRAM (T1) 中的数据权重保持在最低限度,并将随时间增长的 KV 缓存移至 DDR4 RAM (T2)。
对人工智能基础设施的影响
GreenBoost 作为开源版本的发布代表了开发者社区对消费 GPU 市场强加的人为限制的强烈反应,消费 GPU 市场的计算能力很高,但受限的 VRAM 限制了工业使用。它试图通过软件模拟 Apple M 系列架构中的统一内存体验,通过将该技术集成到现有的 PC 平台中,无需昂贵的 HBM 模块即可实现大规模 AI 推理。
这种实现方法为个体研究人员和中小型人工智能开发生态系统应对企业级人工智能加速器成本不断上升提供了有力的对策。目前已在 GeForce RTX 5070 上进行了演示,随着源代码的提供,预计使用 Ada Lovelace 和 Ampere 架构卡的广泛用户将验证和适应该解决方案。在硬件强制可扩展性已达到稳定水平的时候,Ferran Duarri 的方法通过绕过从内核管理到 PCI-Express 接口和 CUDA 环境的复杂层,指出了未来分布式 AI 基础设施需要解决的内存管理挑战。世界各地的开发人员不断创造替代方案来绕过这一障碍。

















