2017-09-20 7 views
1

ソースからTensorFlowをビルドするときには、--config=opt(デフォルトではgccフラグ-march=nativeを有効にします)を設定するように求められますが、多くの人が-c optを使用していますが、Bazelのドキュメント-cは、 --compilation_modeではなく、--configTensorFlowをソースからビルドする場合、-c optと--config = optの違いは何ですか?

紛らわしいことに、--compilation_modeでも値として「opt」が使用されますが、それは単に偶然であると思いますか? TensorFlowのコンパイル中にbazel buildを実行すると誰かが-c opt--config=optの違いを明確にすることができますか?

答えて

3

-c optフラグは、最適化設定を有効にしてデバッグ情報なしでBazelにビルドを指示するためのフラグです。あなたが言ったように--compilation_mode opt。これは、任意のコードをコンパイルするために使用されるフラグに関連しています。

--config=optは、コンパイル時に.bazelrcファイルを調べて、optの設定に一致する設定を読み込むようにBazelに伝えています。テンソルフローのconfigureスクリプトを実行した後、.bazelrcファイルを複数の構成の設定を定義する作業領域のルートに置く必要があります。 opt構成の場合は、追加の-march-nativeが追加されてコンパイルされます。

同じように名前が付けられているので、ちょっと偶然です。しかし、--config.bazelrcファイルからBazel設定を選択する柔軟なツールです。 -cは実際には最適化されたコードを構築するためのものです。

3

--config .rcファイルで定義されたフラグのセットを展開する設定を設定します。例えば。 rcファイルにbuild:opt -c optが含まれている場合、コマンドラインで--config optを設定すると-c optに拡張されます。テンソルフローrcファイルset -c optしかし、optの設定は定義されていません。したがって、--config optを設定すると何も起こりません。

追加:TensorFlowの./configureは、opt設定の.bazelrcにいくつかのC++オプションを追加します(C++オプションに拡張されます)。

+0

私はあなたが./configureを実行した後、opt設定を含む新しい.tf_configure.bazelrcが生成されると思います。 – zlalanne

+0

実際、zlalanneが答えを出しているので、configureスクリプトはローカルのrcファイルにいくつかのC++オプションを設定しています。 –

関連する問題