Project-HAMi/HAMi-core

A transparent, in-container GPU resource controller that enforces memory and compute limits by intercepting CUDA calls without application or driver changes.

解决的问题

HAMi-core 是一个容器内 GPU 资源控制器,允许用户为 CUDA 应用程序强制执行设备内存和计算利用率(SM 利用率)的严格限制。它通过在容器内实现 GPU 资源虚拟化,解决了 GPU 资源碎片化和分配效率低下的问题,防止单个应用程序消耗全部可用 GPU 内存或计算能力。

工作原理

该库通过劫持(拦截) CUDA Runtime(libcudart.so)与 CUDA Driver(libcuda.so)之间的 API 调用工作。通过位于这些调用的中间,HAMi-core 可以在不修改应用程序代码或 NVIDIA 驱动程序的情况下,监控并强制执行内存和计算限制。

适用人群

此工具专为管理 GPU 加速容器的开发人员和平台工程师设计,尤其适用于使用 Volcano 或更广泛的 HAMi 项目等编排器来管理共享 GPU 资源的场景。

主要亮点

  • 无需修改应用:无需修改 CUDA 应用程序的源代码即可强制执行限制。
  • 内存虚拟化:对设备内存进行虚拟化,可为每个容器设置特定上限。
  • 计算限制:通过自实现的时间分片机制限制设备利用率。
  • 实时监控:内置监控工具,可实时查看设备利用率。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目