By Myself

Docker&Podman部署WebGPU-Monitor(nvidia-smi On Web)

指南 | Guides 2024年9月22日

First

What is WebGPU-Monitor | 啥是 WebGPU-Monitor

顾名思义 | WebGPU-Monitor 即是一个 GPUMonitor 的网页实现

提供nvidia-smi的Web版

▼ Github Address:

https://github.com/RobertOlechowski/WebGPU-Monitor

OS&APP Version | 系统&软件版本

OS

Podman

APP

v1.0.0.15

Start

因为实现原理较为简单所以官方文档释义清晰

但部署方式为Docker

下面记录Podman使用过程

Run Docker

https://github.com/RobertOlechowski/WebGPU-Monitor/blob/main/README.md

Run Podman

Requirements | 要求

首先安装 nvidia-container-toolkit

# openSUSE

zypper install nvidia-container-toolkit

# debian

apt-get install -y nvidia-container-toolkit

▼ Pkg info 如下

其次我们需要按照Nvidia官方指示配置容器(container)CDI

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/cdi-support.html

配置完成后使用nvidia-ctk cdi list检查生成的设备名称

➜  ~ nvidia-ctk cdi list
INFO[0000] Found 3 CDI devices
nvidia.com/gpu=0
nvidia.com/gpu=GPU-937i9292-e117-c2c4-1e1f-c9elb227o092
nvidia.com/gpu=all
➜  ~

Podman Cli

上述条件准备完毕后我们就可以运行WebGPU-Monitor

podman run -p 127.0.0.1:30003:8000 -it --device nvidia.com/gpu=all ghcr.io/robertolechowski/webgpu-monitor:latest

Podman Quadlet

▼ 使用Podlet生成Quadlet文件

podlet podman run -p 127.0.0.1:30003:8000 -it --device nvidia.com/gpu=all ghcr.io/robertolechowski/webgpu-monitor:latest

▼ 回显如下

# webgpu-monitor.container
[Container]
AddDevice=nvidia.com/gpu=all
Image=ghcr.io/robertolechowski/webgpu-monitor:latest
PodmanArgs=--interactive --tty
PublishPort=127.0.0.1:30003:8000

▼ 完全体如下所示(添加Unit和Install)

[Unit]
Description=This web application enables real-time monitoring and management of GPU cards
After=network-online.target
Wants=network-online.target
Before=shutdown.target

[Container]
AddDevice=nvidia.com/gpu=all
Image=ghcr.io/robertolechowski/webgpu-monitor:latest
PodmanArgs=--interactive --tty
PublishPort=127.0.0.1:30003:8000

[Install]
WantedBy=multi-user.target

▼ 整个过程看起来如图所示

▼ 重载systemd

systemctl daemon-reload

▼ 启动 WebGPU-Monitor

systemctl start webgpu-monitor

Use | 使用

启动完成后按照设定的URL打开即可

▼ 界面如下所示

Ex | 拓展

With Haproxy

如果你使用haproxy做反向代理

▼ 那么主要配置为您呈上

acl  webgpu                 hdr_reg(host)         -i    xxx.xxx

use_backend                 webgpu-s              if    webgpu

backend webgpu-s
    mode http
    server webgpu-s      127.0.0.1:30003

Over | 总结

简单小巧的一个容器程序

nvidia-smi的Web实现

期待后期能够带来更多功能

Learn from | 抄袭

同时感谢作者的付出

标签

xzllll

三分钟热度三分钟收获