在Kuberenetes上使用图像tensorflow/serving:latest-devel-gpu
时,未使用GPU。
我对此没有任何幻想,只需传递server.conf和模型文件即可。
默认运行时为nvidia-docker,我的其他GPU吊舱能够使用GPU。
日志中唯一的错误:
E 外部/org_tensorflow/tensorflow/stream_executor/cuda/cuda_driver.cc:397 ]对cuInit的调用失败:CUresult(-1)
有趣的事情:
我 外部/org_tensorflow/tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189] libcuda报告的版本是:找不到:找不到libcuda.so DSO已加载到该程序中
答案 0 :(得分:1)
使用
更新您的dockerfileRUN rm /usr/local/cuda/lib64/stubs/libcuda.so.1
或从docker hub扩展服务开发gpu映像,额外增加一行
FROM tensorflow/serving:1.9.0-devel-gpu
RUN rm /usr/local/cuda/lib64/stubs/libcuda.so.1
答案 1 :(得分:0)
总之,有些解决方案效果很好(一次尝试一种):
运行:
$ sudo apt-get install nvidia-modprobe
$ sudo reboot
运行:
$ nvidia-cuda-mps-server
运行following:
$ sudo modinfo nvidia-<driver_version_num>-uvm (with driver_version_num as 384 in my case)
$ sudo modprobe --force-modversion nvidia-<nvidia-version>-uvm
I was on CUDA-8 and CuDNN-6.0
I moved to CUDA-9 and CuDNN-7.0
当您将Tensorflow作为Pod运行时,我猜想解决方案1
,2
,3
应该应用于工作节点,而解决方案{{1} },您可能需要更新Tensorflow docker映像。a