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 應用程式的原始碼即可強制執行限制。
  • 記憶體虛擬化:對設備記憶體進行虛擬化,可為每個容器設定特定上限。
  • 計算限制:透過自實作的時間分片機制限制設備利用率。
  • 即時監控:內建監控工具,可即時查看設備利用率。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案