bazel使用opencl支持编译tensorflow

时间:2017-12-02 12:28:45

标签: c++ tensorflow opencl cross-compiling bazel

我能够使用交叉工具链构建arm平台的张量流,如

中所述

bazel cross compile

但是当我们运行' ./ configure'时,Tensorflow支持使用OpenCL支持构建。来自tensorflow主页目录,我们得到以下问题

  

您是否希望在OpenCL支持下构建TensorFlow? [y / N]:y   将为TensorFlow启用OpenCL支持。   请指定应将哪个C ++编译器用作主机C ++   编译器。 [默认为/ usr / bin / g ++]:
请指定哪个C编译器   应该用作主机C编译器。 [默认为/ usr / bin / gcc]:   请指定ComputeCpp for SYCL 1.2的位置   安装。 [默认为/ usr / local / computecpp]:

我想知道如何在构建交叉工具链的tensorflow时启用opencl。我怀疑上述配置会被交叉工具链中指定的配置覆盖

实际要求:使用--config = sycl为arm 32位系统交叉构建Tensorflow

完成的事情

  1. 能够使用以下命令交叉构建Tensorflow而不使用--config = sycl for arm 32 bit system
  2.   

    bazel build --crosstool_top = // armv7l-compiler:toolchain   --cpu = armeabi-v7a tensorflow:libtensorflow_cc.so --cxxopt =" -std = c ++ 11"

    结果:内置正常且无错误

    2交叉构建Tensorflow没有--config = sycl for arm 32 bit system使用以下命令

    bazel build -c opt --copt="-mfpu=neon" --crosstool_top=//armv7l-compiler:toolchain --cpu=armeabi-v7a tensorflow:libtensorflow_cc.so --cxxopt="-std=c++11" --config=sycl
    

    结果 在尝试链接libComputeCpp.so

    时,最后一刻构建失败

    我从codeplaysoftware网站下载了Linux16.04和arm64位的sdk。我能否知道是否有32位版本

    我基本上想通过opencl或sycl来提高嵌入式32位arm设备上TensorFlow的速度。您还可以建议在构建时使用任何其他优化标志。

    谢谢

0 个答案:

没有答案