新しいVoltaアーキテクチャと利点を備えた3dconv/deconvレイヤーを使用するニューラルネット(ジェネレータとして機能するオートエンコーダー+ CNNをディスクリミネータとして使用)をテストしたいと考えました混合 - 精密訓練から得たものである。 CUDA 9とCudNN 7.0でTensorflow 1.4の最新のソースコードをコンパイルし、自分のconv/deconvレイヤーで使用されているすべての訓練可能な変数をtf.float16にキャストしました。また、すべての入力と出力のテンソルは8の倍数のサイズを持っています。Tesla V100のTF1.4で混合精度が有効になっていません
残念ながら、この設定では速度の改善はほとんど見られません。トレーニング時間はtf.float32を使用した場合とほぼ同じです。私の理解は、VoltaアーキテクチャとcuDNN 7.0では、Mixed PrecisionがTFによって自動的に検出され、それによってTensor Core数学の使用が可能になるということです。私は間違っているのですか、それを可能にするために何かすべきでしょうか? TF1.5のnighltyビルドも試しましたが、それは私のカスタム1.4よりもさらに遅いようです。
Tensorflowに関わる開発者がこれに答えることができれば、私は感謝します。
編集:NVIDIAのテクニカルサポートと話をした後、float16をサポートしている間、TFは単純な2D conv Opsでは混在精度の加速度を統合しますが、今のところ3D conv Opsではそうではないようです。
@Engineero AWSはちょうど私があまりにもV100を持っているV100 – yjmade
とP3のインスタンスを解放し、そしてまたでイライラを感じますテンソルフローによるサポートの欠如。畳み込みグループのサポートの欠如も迷惑です:https://github.com/tensorflow/tensorflow/issues/3332。その投稿は、何かがすぐに公開されることを希望します:https://github.com/tensorflow/tensorflow/issues/12474#issuecomment-338309705。私がせっかちになれば、私はCaffe2を試みます。それは長い間、最新のcudnn機能をサポートしていました。 –
ここでNVIDIAが提案した手順を試しましたか?http://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html#tensorflow Tf 1.4が利用可能になったので、コードを変更するだけですより速いトレーニングをサポートします。 また、ブログを見てください:https://devblogs.nvidia.com/parallelforall/mixed-precision-training-deep-neural-networks/ – melgor89