GLake 项目介绍
背景介绍
随着人工智能模型的规模不断增长,GPU内存容量和IO传输带宽在满足AI大模型训练与推理需求方面面临着极大挑战。GLake项目正是为了解决这些瓶颈而生的。它是一款底层加速库,专注于优化GPU内存管理和IO传输。通过有效利用底层硬件资源,GLake大幅提升了训练吞吐量、节省推理内存和加速IO传输。
项目动机
GPU内存瓶颈
尽管GPU以其高计算能力和并发能力著称,但其内存容量却是限制其性能的瓶颈。特别是对于要求高内存容量的大模型而言,GPU的发展速度远不足以满足需求。
IO传输瓶颈
随着GPU计算能力和CPU-GPU IO带宽的发展不匹配,传输墙的问题越来越严重。尽管有定制化互联NVLink,GPU间带宽高于PCIe,但在大型模型推理中,GPU内存带宽仍是性能瓶颈。
项目架构
GLake采用层次化架构设计,主要面向PyTorch和NVIDIA GPUs进行测试和验证。
- 硬件接口:包括NV GPU及其互联,支持NVLink、P2P等技术,未来还将支持国内AI卡及新兴互联技术。
- GPU内存池:提供全球化和异构化的内存池,具备内存碎片优化、多流和多进程内存复用、安全等特性。
- 核心优化层:提供增值优化功能,包括全局分配、多通道并发等。
- 扩展层:结合深度学习框架和VGPU,提供集成解决方案。
- 应用和生态:目前聚焦于AI训练与推理,未来将支持图计算、图形渲染等场景。
项目特色
- 高效性:通过两层GPU内存管理和全局优化,实现内存池化、多GPU共享等,CPU-GPU传输速度提升3~12倍。
- 易用性:核心功能对模型训练和推理透明,无需修改代码,同时提供在线内存碎片查询。
- 开放性与可扩展性:提供可配置的策略,例如压缩、数据验证等。
- 安全性:内置GPU内存越界检测机制,帮助进行故障诊断。
主要成效
- GLake将内存碎片率降低至27%,节省了25G GPU内存,并将10B模型的训练吞吐量提升近4倍。
- 在推理中,通过消除进程间和模型间的重复内存,节省了3倍的内存。
- 将CPU-GPU IO传输速度提升3倍。
未来规划
GLake将继续发展以下功能:
- LLM KV缓存管理
- 缓存预取优化
- 分层管理不同设备和内存类型的数据移动
- 数据重删在推理和无服务器环境中保持单一内存副本
- 内存调试增强越界和段错误调试能力
- 增加加速器支持与更广泛的场景应用
社区支持
GLake提供微信群支持,欢迎感兴趣的朋友加入讨论。通过微信联系获取更多信息。
GLake项目旨在突破当前GPU内存和传输瓶颈,为AI模型训练及推理提供一套高效、易用及安全的解决方案。同时,我们欢迎社区的意见反馈和参与,不断改进和扩展项目功能。