2017-03-22 10 views
0

Ubuntu 16.04 Linux ppc64leでTensorflow 1.0.1を使用しています。 jemallocと実験的なXLAサポートを有効にしました。 bazelテスト// tensorflow /コンパイラを実行中/ ... ppc64leのXLAのサポートを確認するために、我々はすべてのテストは、私が実行してみました「NO STATUS」としてでも、リンカエラー以下Tensorflow 1.0.1でjemallocを有効にするとXLAテストが失敗する

usr/bin/ld: bazel-out/local-opt/bin/tensorflow/compiler/aot/codegen_test: hidden symbol 'pthread_atfork' in 
     /usr/lib/powerpc64le-linux-gnu/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO 

でスキップされていることがわかりましたbazelテスト//テンソルフロー/コンパイラ/ aot:codegen_testのような単一のテストで、同じリンカエラーが発生しました。 tfcompile_util_testだけが通過しています。

このエラーを残して、私が気付いたのは、jemallocを無効にすると、ほとんどのXLAテストが合格になります。 jemallocを無効にすると、XLAテスト全体の約70〜80%が私に渡されました。残りのテストはまだ失敗しています。 jemallocとXLAが関連しているかどうかは不明です。彼らが関係していると私の観察が良い保持することが可能であれば誰でも確認してもらえますか?

上記のリンクエラーについては、ppc64leのglibcのバグで、x86のglibcが実行する動的なバージョンのpthread_atforkをエクスポートせず、flukeがエクスポートしていることを読んだ。そして解決策は、リンクオプションに-lpthreadを追加することです。何らかの理由で、テンソルフロー/コンパイラの.bzlファイルまたはBUILDファイルのlinkoptsとして-lpthreadを追加しても機能しません。 -lpthreadはリンクコマンドに表示されません。このエラーのポインタも参考になります。この問題について私たちを助けてください。

おかげで、 Nishidha

+0

最後に、私はそれが機能していなかった理由を得ました。 jemallocコードはこの関数pthread_forkを使用しています。ですから、-lpthreadリンクフラグでビルドする必要があります。 –

答えて

0

-lpthreadはjemalloc.BUILDファイルにjemallocのリンクオプションで使用されるべきです。

関連する問題