使用Docker从源代码编译Tensorflow,以获得CPU加速

7

我正在寻找一种设置或修改现有的Docker镜像来安装tensorflow的方法,使其能够利用SSE4、AVX、AVX2和FMA指令以加快CPU速度。到目前为止,我已经发现了如何使用bazel从源代码编译TensorflowHow to Compile Tensorflow...CPU instructions not compiled...。这两个都没有解释如何在Docker中完成这个过程。因此,我认为我需要添加到现有的不带这些选项的Docker镜像中,以便您可以获得启用了CPU选项的Tensorflow编译版本。现有的Docker镜像不会这样做,因为它们希望该镜像在尽可能多的机器上运行。我正在使用Linux PC上的Ubuntu 14.04。我刚开始学习Docker,但已经安装了tensorflow,并且没有遇到使用docker镜像时出现的CPU警告的问题。也许我不需要这个速度,但我看到有人发帖声称速度提升很明显。我搜索了已经存在的Docker镜像,但没有找到任何内容。我需要这个与gpu配合使用,因此需要与nvidia-docker兼容。

我刚刚发现了这个docker support for bazel,它可能提供了一个答案,但是我不太理解它足够确定。我认为这意味着你不能在Dockerfile内使用bazel构建tensorflow。你必须使用bazel构建一个Dockerfile。我的理解正确吗?这是从源代码编译tensorflow的唯一方法吗?如果是,我仍然需要帮助如何做到这一点,并获得其他依赖项,就像使用现有的tensorflow docker镜像一样。


1
devel Dockerfile 包含一个 bazel 构建步骤。 - Matt
1
谢谢。我看到它可以完成。这很有帮助。看起来GPU版本在这里:devel-gpu。我需要更改第一行以在Ubuntu 14.04上运行吗?FROM使用FROM nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04 - Zak Keirn
@ZakKeirn 你能创建那个Dockerfile吗?我正在寻找完全相同的。 - Diego Orellana
抱歉,不行。我有其他事情要忙,但仍然对此感兴趣。如果你有进展,请在这里发布。 - Zak Keirn
@Matt,你的评论已经为我解答了这个问题。你能否把它写成一个回答呢? - miguelmorin
@Matt 那些图片现在已经过时了,已经移动到这里 - miguelmorin
2个回答

1

可以在这里找到构建CPU支持的Dockerfiles。

希望能有所帮助!我在Stack Overflow和Github Issues等地方度过了很多个深夜。现在轮到我回馈社区了!:)

特别是涉及GPU的部分非常复杂 - 尤其是启用XLA/JIT/AOT以及图形转换工具时。

我的Dockerfiles中嵌入了许多技巧。欢迎查看并向我提问!


谢谢。@matt的第一条回复似乎引导我去了我想要去的地方。我希望只稍微修改一下来自tensorflow网站的现有维护dockerfile。您是否看到只是向devel-gpu添加编译标志是否会出现任何问题? - Zak Keirn

0

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