制作一个Dockerfile,用于编译Tensorflow二进制文件并使用:SSE4.1、SSE4.2和AVX指令。

8
那么,Docker 的一个目的是为了轻松部署环境以测试软件,对吗?有人能告诉我如何在 Dockerfile 中编译 Tensorflow 二进制文件以使用 SSE4.1、SSE4.2 吗?是否有可能做到这一点?

总之,有两个问题:

  • 是否可能有一个 Dockerfile 来编译 Tensorflow 二进制文件以使用 SSE4.1、SSE4.2(和 GPU,我只找到其中的一个)?
  • 你能告诉我在哪里可以找到可以实现它或好的教程的 Dockerfile 吗?

“这个问题的目的是避免以下情况:主机设置可行,但 Docker 设置无法正常工作,因为 Tensorflow 没有以特定方式编译。” 像下面的图像一样。enter image description here


1
你是否知道这个dockerfile - Patwie
@Patwie 是的,谢谢。但是那个 Dockerfile 对我来说不起作用,当我构建镜像时它会抛出错误。它对你有用吗? - Diego Orellana
@Patwie,它说BAZEL_VERSION太旧了,我改了它,然后它开始抛出更多的错误。所以我发现自己在调试一个Dockerfile,这与Dockerfile的主要思想相违背。因此,我开始怀疑是否可能完全做到这一点,也许以某种方式编译Tensorflow取决于主机,即使它是在Dockerfile中完成的。我解释清楚了吗? - Diego Orellana
1个回答

3
这样的Dockerfile工作示例可用作起点,链接如下:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/docker(详见README.md)。更准确地说,这是一组参数化的Docker文件,使用parameterized_docker_build.sh启动构建。成功在Docker中编译TensorFlow的命令示例为:
export TF_DOCKER_BUILD_IS_DEVEL=YES
export TF_DOCKER_BUILD_TYPE=CPU
export TF_DOCKER_BUILD_PYTHON_VERSION=PYTHON3
export TF_DOCKER_BUILD_DEVEL_BRANCH=master
tensorflow/tools/docker/parameterized_docker_build.sh

为了使用自定义标志构建TensorFlow,请使用TF_DOCKER_BUILD_IS_DEVEL=YES,因为非开发Docker文件只是从服务器下载预编译的Docker二进制文件。

TensorFlow团队最近才开始使用AVX构建开发Docker镜像

对于SSE,请参见这个问题。您可以修改本地副本中的bazel命令行https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/Dockerfile.devel

PS. 对于使用自定义选项的非开发者TensorFlow构建,您可以查看https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/ci_build


3
这个链接包含我需要的一切:https://github.com/mind/wheels - Diego Orellana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接