tensorflow - 将 GPU 共享到 Kubernetes 中的多个容器或分数 GPU 资源请求
问题描述
我正在使用 Kubernetes(K8) v1.7 并且想知道我是否可以在多个 pod 之间共享一个 GPU。我在 TensorFlow 中有一个 MNIST 机器学习程序,其中 GPU 分配设置为 30%,GPU 增长allow_growth
为假。两个清单文件用于在 K8 下部署两个单独的作业。当我一起运行它们时,一个被安排,另一个等待,因为 GPU 资源不可用。在我的清单文件中,我设置alpha.kubernetes.io/nvidia-gpu
为 0.5。当我检查 GPU 进程时,它总是显示一个进程正在运行。如果我从 Kubernetes 停止一项作业,那么其他作业会被安排并显示在 GPU 进程中。仅供参考,我使用的机器只有一个 GPU。所以我的问题是 Kubernetes 是否支持 GPU 共享?我可以共享一个 GPU 并在清单文件中定义它吗?
清单的一部分(两个作业具有相同的 GPU 请求)
resources:
limits:
alpha.kubernetes.io/nvidia-gpu: 0.5
命令的输出nvidia-smi
一次显示 1 个进程
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:0B:00.0 Off | N/A |
| 0% 33C P2 59W / 275W | 177MiB / 11178MiB | 8% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 15513 C python3 167MiB |
+-----------------------------------------------------------------------------+
解决方案
目前不支持多个容器上的 GPU 共享,并且不太可能很快得到支持。您需要让每个虚拟机成为一个单独的 Kubernetes 节点,每个节点都有一个单独的 GPU。
推荐阅读
- wordpress - 调用未定义函数 request_currencies()
- python - AttributeError:“维度”对象在使用 Keras Sequential Model.fit 时没有属性“log10”
- c++11 - Pytorch 扩展:由 g++ 编译的扩展与由 setuptools 构建的扩展之间的性能差异
- python - 如何实现并行,以这样的方式延迟,当输出低于阈值时并行化 for 循环停止?
- javascript - 为什么使用 react-graph-vis 文本会重叠?
- python - 如何在OpenCV中绘制与圆弧垂直的线
- powershell - 使用 Powershell 将图像插入 Powerpoint
- r - R中的堆叠水平条形图
- python - Python:Selenium:无法获取浏览器控制台日志
- webstorm - 如何更改面包屑顶部边框?