2017-02-25 157 views
1

您好,我按照说明从源代码安装,运行./configure后提供了clang/++和ComputeCpp路径,并且是OpenCL。TensorFlow:从源代码安装OpenCl的编译错误

随着巴泽勒命令:

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

我得到以下编译错误:

clang++: symbol lookup error: /usr/bin/clang++: undefined symbol: LLVMInitializeMipsAsmParser 

我抬头的象征,属于生锈这是不是我的系统上安装,也没有我可以看到如何安装它或本安装TensorFlow所需的库。它只发生在我为OpenCL安装时。所以它似乎与ComputeCpp一起用于OpenCL。我在Fedora 25上安装(Yey)

任何想法将不胜感激。另外你怎么阻止它每次运行时下载./Configure它可以不只是读它已经下载的文件,如果是的话在哪里?

感谢 Hbyte

+0

这个问题似乎是你已经安装了clang ++,并且这是用于编译而不是Compute ++,它是ComputeCpp的编译器。我没有针对你的具体解决方案,但我会尝试找出如何解决这个问题。 –

+0

我插入了ompute ++,现在发现位于我的/ usr/include路径中的头文件没有被使用。 stdarg.h就是一个例子。我现在要确保所有包含路径都被compute ++访问。这需要编辑Bazel构建文件,但这很困难。我很想知道是否有使用OpenCL的Fedora现成的whl软件包。谢谢 – hbyte

回答

1

首先关闭所有的Fedora 25是不是正式ComputeCpp被支持。虽然,我们将尽我们所能帮助。

您不应该需要更改任何bazel构建文件。 你能确认ComputeCpp安装在哪里吗?

I inserted ompute++ and have now found that header files located in my /usr/include path are not being used.

您的意思是在配置TF使用OpenCL后没有选择您的系统头文件?

从TensorFlow设置的角度来看,你应该指向 ./configure什么位置..没有必要复制头/二进制文件到任何地方。

比如我ComputeCpp是我的主目录

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 which: no clang++-3.6 in (/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/luke/.local/bin:/home/luke/bin) Please specify which C++ compiler should be used as the host C++ compiler. [Default is ]: /usr/bin/clang++ Please specify which C compiler should be used as the host C compiler. [Default is /usr/local/bin/clang-3.6]: /usr/bin/clang Please specify the location where ComputeCpp for SYCL 1.2 is installed. [Default is /usr/local/computecpp]: /home/luke/ComputeCpp-CE-0.1.2-Linux 作为WHL包,把它归结为谷歌,但据我所知TensorFlow没有正式支持的Fedora 25两种。

如果您对构建系统的修复,请创建pull请求:)

如果你选择GCC为您的主机的编译器会发生什么?

是否可以在GitHub上打开一个问题来跟踪这个进程?

+0

ComputeCpp位于/ usr/local /中。我曾尝试使用海湾合作委员会,而不是铛,但迄今没有尝试过G ++而不是铿锵声++我在等待我的宽带被修复,然后我会再去一次。 Bazel每次运行./config和bazel时都会重新下载它的文件,这样每次我都必须等待。 – hbyte

+0

使用compute ++缺少/ usr/include/linux - 它位于包含路径中,它无法找到stdarg.h - /usr/include/c++/6.2.1/tr1/。但是,这也是ComputeCpp包含叮当声的路径。你能告诉我这些缺失的标题如何指示./config使用它们只是简单的-I/usr/include/linux? – hbyte

+0

我在线阅读,他们需要包含在bazel BUILD文件中。它会为使用OpenCl的Fedora提供一个软件包。仅安装CPU的版本不包括OpenCL。是的,你可以在GitHub上打开一个问题,请做。我只会解决所有的错误,并尝试解决它们 - 但我需要知道我可以提供给bazel build来包含这些导演的参数 - 没有线索。或者提供它们进行配置,我更喜欢Bazel,因为每次运行配置时都会节省时间。我必须重新下载。谢谢 – hbyte