2017-02-25 63 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