podman 宿主机gpu
时间: 2024-12-30 21:33:45 浏览: 10
### 配置 Podman 以允许容器访问宿主机的 GPU
为了使 Podman 容器能够访问宿主机上的 GPU 资源,需要确保宿主机已正确配置 NVIDIA 驱动程序及相关组件。具体操作如下:
#### 确认宿主机环境准备
确认宿主机已经安装了最新的 NVIDIA 显卡驱动,并且 `nvidia-container-toolkit` 或类似的工具也已经被正确设置。这一步骤是为了让宿主机可以识别并管理 GPU 设备。
```bash
$ nvidia-smi
```
上述命令应该返回有关 GPU 使用情况的信息而不是错误消息[^4]。
#### 设置必要的内核模块和服务
确保启用了相应的 Linux 内核模块(如 `nvidia`, `nvidia_uvm`, 和 `nvidia_modeset`),并且这些服务正在运行。可以通过下面的命令来加载它们:
```bash
sudo modprobe nvidia
sudo modprobe nvidia-uvm
sudo modprobe nvidia-modeset
```
对于某些发行版可能还需要启用特定的服务或调整引导参数以确保重启后仍然有效。
#### 修改 Podman 运行时选项
为了让 Podman 支持 GPU 功能,需编辑 `/etc/containers/registries.conf.d/00-nvidia.conf` 文件 (如果没有则创建),添加以下内容指向本地镜像仓库路径:
```ini
unqualified-search-registries = ["registry.access.redhat.com", "quay.io"]
[nvidia]
runtime = "/usr/bin/nvidia-container-runtime"
```
同时修改 `/etc/containers/registries.conf` 中默认 runtime 为 nvidia 版本:
```ini
[engine]
default_runtime = "nvidia"
...
[runtime.nvidia]
path = "/usr/bin/nvidia-container-runtime"
runtime_args = []
```
注意不同操作系统位置可能会有所差异,请参照官方文档进行相应更改。
#### 创建带有 GPU 访问权限的容器
当完成前面几步之后就可以尝试启动一个新的容器实例,并指定它使用 GPU 加速功能。这里给出一个简单的例子展示如何拉取 TensorFlow 的官方镜像并在其中测试 GPU 是否可用:
```bash
podman run --rm --gpus all tensorflow/tensorflow:latest-gpu python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
```
这条指令将会下载最新版本的支持 GPU 的 TensorFLow 镜像,然后执行一段 Python 代码验证是否有可用的物理 GPU 设备[^5]。
阅读全文