Intel XPU Manager是一款带内节点级工具,提供本地/远程GPU管理功能。它可轻松集成到集群管理解决方案和集群调度器中,GPU用户可通过其管理本地Intel GPU。该工具支持本地命令行界面、本地库调用和远程RESTful API接口。
源代码仓库:https://github.com/intel/xpumanager/
示例1:启用大部分功能
此示例启用XPUM的大部分功能(vgpu、log和topdown子命令在容器中不支持):
sh# 克隆源码仓库 git clone --depth 1 https://github.com/intel/xpumanager.git xpum_src_root=$(pwd)/xpumanager mkdir -p rest/conf # 配置RESTful凭证 sudo ${xpum_src_root}/install/tools/rest/keytool.sh --owner=root --group=root sudo ${xpum_src_root}/install/tools/rest/rest_config.py --owner=root --group=root # 拉取镜像 xpum_image=intel/xpumanager:latest docker pull ${xpum_image} # 创建固件目录 firmware_image_dir=$HOME/firmware mkdir -p ${firmware_image_dir} # 运行容器 docker run --rm --privileged \ --network host \ --device /dev/dri:/dev/dri \ --device /dev/mem:/dev/mem \ $(ls /dev/|grep mei|sed 's/^/--device \/dev\//g'|tr "\n" " ") \ $(ls /dev/|grep ipmi|sed 's/^/--device \/dev\//g'|tr "\n" " ") \ -v /sys/kernel/debug:/sys/kernel/debug \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -v ${firmware_image_dir}:/tmp/firmware:ro \ -e XPUM_REST_PORT=12345 \ ${xpum_image}
示例2:有限功能(作为Prometheus导出器)
此示例启用有限功能,适用于作为Prometheus导出器:
sh# 克隆源码仓库 git clone --depth 1 https://github.com/intel/xpumanager.git xpum_src_root=$(pwd)/xpumanager mkdir -p rest/conf # 配置RESTful凭证 sudo ${xpum_src_root}/install/tools/rest/keytool.sh --owner=root --group=root sudo ${xpum_src_root}/install/tools/rest/rest_config.py --owner=root --group=root # 拉取镜像 xpum_image=intel/xpumanager:latest docker pull ${xpum_image} # 运行容器 docker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --publish 29999:29999 \ --device /dev/dri:/dev/dri \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ ${xpum_image}
生成TLS证书并配置RESTful用户凭证:
shxpum_src_root=$HOME/xpumanager mkdir -p rest/conf sudo ${xpum_src_root}/install/tools/rest/keytool.sh --owner=root --group=root sudo ${xpum_src_root}/install/tools/rest/rest_config.py --owner=root --group=root
运行容器:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --publish 29999:29999 \ --device /dev/dri:/dev/dri \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ ${xpum_image}
配置RESTful用户凭证:
shxpum_src_root=$HOME/xpumanager mkdir -p rest/conf sudo ${xpum_src_root}/install/tools/rest/rest_config.py --owner=root --group=root
通过环境变量XPUM_REST_NO_TLS=1运行容器:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --publish 29999:29999 \ --device /dev/dri:/dev/dri \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ ${xpum_image}
要启用Xe Link吞吐量指标报告,容器必须以host网络模式运行(--network host)。可通过环境变量XPUM_REST_PORT指定RESTful服务器端口避免端口冲突:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --network host \ --device /dev/dri:/dev/dri \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ -e XPUM_REST_PORT=12345 \ ${xpum_image}
PCIe吞吐量指标收集依赖内核模块msr,需在主机上通过modprobe msr加载。默认不启用,需通过环境变量XPUM_METRICS指定包含PCIe吞吐量指标索引的范围。
获取指标索引列表:
shdocker run --rm --entrypoint /usr/bin/xpumd ${xpum_image} -h
运行容器启用PCIe吞吐量收集:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --cap-add=SYS_RAWIO \ --publish 29999:29999 \ --device /dev/dri:/dev/dri \ --device /dev/cpu:/dev/cpu \ --device /dev/mem:/dev/mem \ -v /sys/firmware/acpi/tables/MCFG:/pcm/sys/firmware/acpi/tables/MCFG:ro \ -v /proc/bus/pci/:/pcm/proc/bus/pci/ \ -v /proc/sys/kernel/nmi_watchdog:/pcm/proc/sys/kernel/nmi_watchdog \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ -e XPUM_METRICS=0-38 \ ${xpum_image}
要支持容器内GFX固件更新,需将主机Intel Management Engine Interface设备/dev/mei?添加到容器:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --device /dev/dri:/dev/dri \ $(ls /dev/|grep mei|sed 's/^/--device \/dev\//g'|tr "\n" " ") \ -v ${firmware_image_dir}:/tmp/firmware:ro \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ ${xpum_image}
XPUM支持通过IPMI协议和Redfish主机接口更新AMC(Add-in-card Management Controller)固件,详情参见https://github.com/intel/xpumanager/releases%E3%80%82
选项1:IPMI协议
添加主机设备/dev/ipmi0到容器:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --device /dev/dri:/dev/dri \ $(ls /dev/|grep ipmi|sed 's/^/--device \/dev\//g'|tr "\n" " ") \ -v ${firmware_image_dir}:/tmp/firmware:ro \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ ${xpum_image}
选项2:Redfish主机接口
需以host网络模式运行,添加/dev/mem设备并赋予扩展权限:
shdocker run --rm --privileged \ --network host \ --device /dev/dri:/dev/dri \ --device /dev/mem:/dev/mem \ -v ${firmware_image_dir}:/tmp/firmware:ro \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ ${xpum_image}
要支持设备配置,需赋予容器扩展权限(--privileged):
shdocker run --rm --privileged \ --device /dev/dri:/dev/dri \ -v $(pwd)/rest/conf:/usr/lib/xpum/rest/conf:ro \ -e XPUM_REST_NO_TLS=1 \ ${xpum_image}
若不将容器用作Prometheus导出器,可通过环境变量XPUM_REST_DISABLE禁用RESTful API,无需配置凭证:
shdocker run --rm --cap-drop ALL --cap-add=SYS_ADMIN \ --device /dev/dri:/dev/dri \ -e XPUM_REST_DISABLE=1 \ ${xpum_image}
| 环境变量 | 描述 | 取值示例 |
|---|---|---|
| XPUM_REST_PORT | 指定RESTful服务器端口 | *** |
| XPUM_REST_NO_TLS | 禁用TLS加密 | 1 |
| XPUM_METRICS | 指定要收集的指标索引范围 | 0-38 |
| XPUM_REST_DISABLE | 禁用RESTful API | 1 |
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务