安装带有 SYCL 支持的 TensorFlow

Posted

技术标签:

【中文标题】安装带有 SYCL 支持的 TensorFlow【英文标题】:Install Tensorflow with SYCL support 【发布时间】:2018-03-16 00:48:35 【问题描述】:

我正在尝试使用 gdb 来跟踪具有 Eigen SYCL 支持的 Tensorflow 操作内核实现。 但是,当我尝试安装.whl 软件包时,会弹出一些关于fglrx 的错误消息。

错误信息

Compiling /tmp/pip-1vfYDJ-build/tensorflow-1.0.1.data/purelib/tensorflow/contrib/cudnn_rnn/ops/gen_cudnn_rnn_ops.py ...
  File "/tmp/pip-1vfYDJ-build/tensorflow-1.0.1.data/purelib/tensorflow/contrib/cudnn_rnn/ops/gen_cudnn_rnn_ops.py", line 1
    Error: Fail to load fglrx kernel module!
             ^
SyntaxError: invalid syntax ....

配置

CPU:英特尔酷睿 i7-4790 GPU:GeForce GT 630/PCIe/SSE2 操作系统:ubuntu 15.04 司机:Nvidia binary driver nvidia-352

命令

这是我根据教程使用的命令。

https://www.codeplay.com/portal/03-30-17-setting-up-tensorflow-with-opencl-using-sycl

配置

Please specify the location of python. [Default is /usr/local/bin/python]: 
Please specify optimization flags to use during compilation [Default is -march=native]: 
Do you wish to use jemalloc as the malloc implementation? (Linux only) [Y/n] 
jemalloc enabled on Linux
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] 
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with Hadoop File System support? [y/N] 
No Hadoop File System support will be enabled for TensorFlow
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N] 
No XLA support will be enabled for TensorFlow
Found possible Python library paths: /usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
Please input the desired Python library path to use.  Default is [/usr/local/lib/python2.7/dist-packages]
Using python library path: /usr/local/lib/python2.7/dist-packages
Do you wish to build TensorFlow with OpenCL support? [y/N] y
OpenCL support will be enabled for TensorFlow
Do you wish to build TensorFlow with CUDA support? [y/N] 
No CUDA support will be enabled for TensorFlow
Please specify which C++ compiler should be used as the host C++ compiler. [Default is /usr/bin/clang++-3.6]: 
Please specify which C compiler should be used as the host C compiler. [Default is /usr/bin/clang-3.6]: 

bazel 构建:

bazel build -c dbg --config=sycl //tensorflow/tools/pip_package:build_pip_package

构建 pip 包:

bazel-bin/tensorflow/tools/pip_package/build_pip_package

安装 pip 包

sudo pip 安装: /tmp/tensorflow_pkg/tensorflow-1.0.1-cp27-none-linux_x86_64.whl

请帮我解决问题。

【问题讨论】:

【参考方案1】:

您(目前)不能在英特尔 GPU 上将 SYCL 与 TensorFlow 结合使用。然而,它很快就会到来。您需要进行一些修复,然后它将正常工作。您需要等待新的 Intel OpenCL GPU 驱动程序,然后对 TensorFlow 进行一些兼容性提交,然后它才能在 Intel GPU 上运行。您可能还想再等一会以获得一些性能改进,因为我们一直更关注正确性,首先,性能会稍晚一些。

【讨论】:

是否有任何关于 SYCL/TensorFlow/Intel GPU 何时可用的预测,即使是 Beta 形式?您可以提供任何链接来关注进度吗?【参考方案2】:

SYCL 变体目前需要支持 SPIR 或 SPIRV 的平台,例如 Intel 或 AMD。 NVIDIA 平台目前都不支持。

【讨论】:

我可以使用英特尔集成显卡运行支持 SYCL 的 Tensorflow 吗?如果是,我该怎么办? 免责声明:我为 ComputeCpp 中的 Codeplay 工作,这是 SYCL 实现之一。 ComputeCpp 适用于 Intel GPU 平台,因此您应该能够运行它。在将结构传递给内核时,有一些 Intel GPU 驱动程序问题会导致一些故障,这可能会影响某些 TF 内核(不确定)。无论如何,英特尔可能会尽快解决这些问题。

以上是关于安装带有 SYCL 支持的 TensorFlow的主要内容,如果未能解决你的问题,请参考以下文章

在 MacOS 中使用 SYCL 1.2

intel sycl 支持提前编译和交叉编译ARM?

oneAPI编程语言DPC++功能收入SYCL 2020最终版规范

SYCL 内核中的分段错误

SYCL 内核中的分段错误

sycl 内核调用很慢