使用 Docker 运行 Tensorflow

2023年 1月 4日 27.5k 0

前面写过一篇文档,如何在 CentOS 安装 GPU 驱动 ,这篇就来看看怎么利用 Docker 运行 Tensorflow 。

1. 检查当前 CPU 支持的 Tensorflow 版本

在不支持 AVX 指令的 CPU 上,运行 Tensorflow > 1.15 版本时,会报错,Illegal instruction (core dumped)。执行检测命令:

1
2
3
cat /proc/cpuinfo | grep avx

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat

如果有查询结果,说明支持。常见的 CPU 体系结构 SandyBridge, IvyBridge, Haswell, Broadwell, Skylake, CasecadeLake 都支持 AVX 指令,除了 Westmere 。

2. GPUCPU 模式运行

使用如下脚本查看运行环境中的设备:

1
2
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

分别起两个版本的 Jupyter 。

  • GPU
1
2
mkdir ~/notebooks
docker run --name tf-gpu -d --runtime=nvidia --rm -it -v $(realpath ~/notebooks):/tf/notebooks -p 8881:8888 tensorflow/tensorflow:latest-gpu-jupyter

查看登录秘钥,返回的 token 值为登录秘钥。

1
2
3
4
5
6
7
8
9
docker exec -it tf-gpu cat /root/.local/share/jupyter/runtime/nbserver-1-open.html

<!DOCTYPE html>
<p>
    This page should redirect you to Jupyter Notebook. If it doesn't,
    <a href="http://0.0.0.0:8888/tree?token={{token}}">click here to go to Jupyter</a>.
</p>

</body>

  • CPU
1
2
mkdir ~/notebooks
docker run --name tf-cpu -d --rm -it -v $(realpath ~/notebooks):/tf/notebooks -p 8882:8888 tensorflow/tensorflow:latest-jupyter

查看登录秘钥,返回的 token 值为登录秘钥。

1
2
3
4
5
6
7
8
9
docker exec -it tf-cpu cat /root/.local/share/jupyter/runtime/nbserver-1-open.html

<!DOCTYPE html>
<p>
    This page should redirect you to Jupyter Notebook. If it doesn't,
    <a href="http://0.0.0.0:8888/tree?token={{token}}">click here to go to Jupyter</a>.
</p>

</body>

3. 参考链接

  • https://github.com/nvidia/nvidia-container-runtime

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论