HAMi:异构AI计算虚拟化中间件完全指南

项目概述

【免费下载链接】HAMi Heterogeneous AI Computing Virtualization Middleware 【免费下载链接】HAMi 项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi

HAMi(异构AI计算虚拟化中间件)是一个面向Kubernetes的异构设备管理中间件。它能够管理不同类型的异构设备(如GPU、NPU、MLU、DCU等),实现设备在Pod之间的共享,并基于设备拓扑和调度策略做出更优的调度决策。

作为CNCF沙盒项目,HAMi旨在消除不同异构设备之间的差异,为用户提供统一的管理接口,无需对应用程序进行任何修改。

核心特性

设备虚拟化能力

HAMi为多种异构设备提供虚拟化功能,支持设备共享和资源隔离:

  • 设备共享:通过设置核心使用率和显存大小,实现设备的部分分配
  • 资源隔离:对流式多处理器进行严格限制,确保资源使用边界
  • 零修改部署:无需对现有程序进行任何修改即可使用
  • 动态MIG支持:提供灵活的MIG切片管理能力

架构设计

HAMi采用模块化架构设计,包含以下核心组件:

  • 统一MutatingWebhook:实现请求的统一处理和策略适配
  • 调度器扩展器:增强Kubernetes原生调度能力
  • 多样化设备插件:适配不同厂商的异构AI设备
  • 容器内虚拟化技术:针对每种设备提供专门的虚拟化方案

系统架构

环境准备与安装部署

系统要求

  • NVIDIA驱动:版本不低于440
  • 容器运行时:Docker/NVIDIA-Docker版本大于2.0,配置nvidia运行时
  • Kubernetes集群:版本1.18及以上
  • 基础依赖:glibc版本2.17-2.30,内核版本3.10+
  • Helm工具:版本3.0+

GPU节点配置

对于基于Debian的系统(包括Docker和containerd):

echo 'deb https://nvidia.github.io/libnvidia-container/stable $(lsb_release -cs) main' | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

容器运行时配置

Docker环境配置示例:

{
  "default-runtime": "nvidia",
  "runtimes": {
    "nvidia": {
      "path": "/usr/bin/nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}

配置完成后需要重启Docker服务。对于containerd环境,需要修改config.toml文件并重启服务。

节点标签策略

为GPU节点添加调度标识:

kubectl label nodes <节点名称> gpu=on

HAMi核心部署

添加Helm仓库

helm repo add hami-charts https://project-hami.github.io/HAMi/

执行安装命令

helm install hami hami-charts/hami -n kube-system

验证安装状态

kubectl get pods -n kube-system

确认hami-device-plugin和hami-scheduler都处于Running状态表示安装成功。

示例展示

资源管理与调度

设备资源申请

在Pod中申请异构设备资源的示例:

resources:
  limits:
    nvidia.com/gpu: 1
    nvidia.com/gpumem: 3000

上述配置将申请1个虚拟GPU,每个虚拟GPU包含3000M设备内存。

资源隔离机制

HAMi支持设备资源的严格隔离,确保每个容器只能访问分配给它的资源:

严格隔离机制

监控与运维

监控功能

安装后自动启用监控功能,可通过以下地址获取集群信息概览:

http://{调度器IP}:31993/metrics

默认监控端口为31993,可在安装时通过参数自定义。

Web管理界面

从HAMi v2.4版本开始,提供了Web管理界面,方便用户进行可视化操作和管理。

升级与维护

系统升级

卸载现有版本:

helm uninstall hami -n kube-system

更新仓库并安装新版本:

helm repo update
helm install hami hami-charts/hami -n kube-system

注意事项

  • 使用NVIDIA镜像时,如果不请求虚拟GPU,机器上的所有GPU可能会在容器内暴露
  • 目前A100 MIG仅支持"none"和"mixed"模式
  • 带有"nodeName"字段的任务目前无法调度,请使用"nodeSelector"代替

总结

HAMi作为一个成熟的异构AI计算虚拟化中间件,已经在多个行业得到广泛应用。通过本文的完整指南,您可以快速掌握HAMi的安装、配置和使用方法,在Kubernetes集群中高效管理和分配异构AI计算资源。

随着AI计算需求的不断增长,HAMi将继续演进,为用户提供更强大的异构设备管理能力。

【免费下载链接】HAMi Heterogeneous AI Computing Virtualization Middleware 【免费下载链接】HAMi 项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值