1

Debian でソースから TensorFlow を正常にビルドしましたが、現在、 Ubuntu 14.04 LTSを使用して新しい仮想マシンからビルドすることはできません。IIRC for Debian g++/gcc 5.2 を試しましたが、g++/gcc 4.9 にダウングレードする必要があり、動作しました。指示に従ってインストールするソースからg++ をインストールする場合、バージョンは 4.8 で失敗しました。

gcc: 内部コンパイラ エラー: 強制終了 (プログラム cc1plus)

4.9はまだ疲れていません。

前回のJenkins ビルドに関する情報を確認しましたが、ツールとそのバージョンに関するリストは見つかりませんでした。未解決の問題: Jenkins ビルド ログにリストされているビルド ツールとバージョン

どのバージョンの g++/gcc が動作することがわかっていますか?
ビルド マシンが使用する g++/gcc のバージョンは何ですか?

編集

これを見つけました: TensorFlow.org 継続的統合

4

1 に答える 1

2

問題は g++/gcc のバージョンではなく、Bazel が TensorFlow のビルドに使用する CPU コアの数です。

1 つの CPU コア、2G RAM、2G スワップ パーティション、および 2G スワップ ファイルを備えた Ubuntu 14.04 LTS の新規インストールを使用して、VMware Workstation 7.1 で複数のビルドを実行すると、ビルドが最も高速に実行されます。これは最適な設定ではないかもしれませんが、これまでのところ一貫して機能することがわかっている最適な設定です。VMware 経由で 4 コアを許可し、Bazel でビルドすると失敗します。Bazel オプション--local_resourcesを使用してリソースを制限すると、

--local_resources 2048,2.0,1.0

正常にビルドされます

INFO: Elapsed time: 11683.908s, Critical Path: 11459.26s

使用して

--local_resources 4096,2.0,1.0

正常にビルドされます

INFO: Elapsed time: 39765.257s, Critical Path: 39578.52s

使用して

--local_resources 4096,1.0,1.0

正常にビルドされます

INFO: Elapsed time: 6562.744s, Critical Path: 6443.80s

使用して

--local_resources 6144,1.0,1.0

正常にビルドされます

INFO: Elapsed time: 2810.509s, Critical Path: 2654.90s

要約すると、私の環境では、より多くのメモリとより少ない CPU コアが最適です。

TLDR;

ビルド プロセスを監視しているときに、特定のソース ファイルのコンパイルに時間がかかり、ビルド中のフロー レートが制限されているように見えることに気付きました。あたかも他のソース ファイルとリソースを競合しているように見えますが、Bazel はこの重要なリソースを認識していないため、競合するファイルが同時にコンパイルされる可能性があります。したがって、不明なリソースと競合するファイルが多いほど、ビルドが遅くなります。

于 2016-01-13T15:45:29.057 に答える