Houdini 19.5 ジオメトリ

Math Kernel Libraryの速度 vs. 再現性

一部のノードは、浮動小数点演算の処理速度を向上させるライブラリを使用していますが、コンピュータによっては出力結果が異なる可能性があります。このライブラリが再現性のある結果を保証する度合いを制御することができます。

On this page

概要

浮動小数点マッチを使用したエフェクトの生成は、高速でありながら、実行する度にまったく同じ結果(再現性)が得られるというメリットがあります。

再現可能な結果に影響を与える主な要因は、ほとんどの浮動小数点演算の非結合性ですが、色々なランタイム、選択可能な最適化コードパス、非決定論的なスレッド化と並列処理、配列の整列、ハードウェア浮動小数点制御設定どれもがそれに影響を与える要因になります。

いくつかのノードは、IntelのMath Kernel Libraryを使用して、プロセッサまたはSSEやAVXといったプロセッサの拡張を利用して一般的な浮動小数点演算の処理速度を向上させています。 Intelプロセッサやその互換プロセッサでは、MKL_CBWR環境変数を使用することで、そのライブラリによる速度と再現可能な結果のバランスを制御することができます。

詳細は、IntelのMKLと再現性に関するホワイトペーパー(PDF)を参照してください。

MKL_CBWR環境変数の設定

  • この環境変数で指定可能な値は、最も遅い/互換性が高いものから最も高速/互換性が低いまであり、COMPATIBLESSE2SSE4_2AVXAUTOです。

  • この環境変数にAUTOを設定すると、現在のコンピュータで利用可能な最も最適な命令が使用されます。

  • 非Intel x86プロセッサ(Ryzen)に関しては、この環境変数にはAUTOモードまたはCOMPATIBLEモードのどれかのみ設定可能です。

  • Intelプロセッサに関しては、この環境変数には、特定のISA拡張レベルが選択されるように設定することができます。これによって、プロセッサが異なるコンピュータグループが共通する同じ拡張セットを使用するようにセットアップすることができるので、マシン間での再現性を上げることができます。

    Intelのライブラリドキュメント内のコードブランチの指定を参照してください。

  • この環境変数の値の後に,STRICTを追加することで、速度よりも再現性を優先させることができます。これは、一部(すべてではなく)のライブラリ関数を、遅い代わりに再現性が高い実装に切り替えます。

    Intelのライブラリドキュメント内の再現性の条件を参照してください。

See also

ジオメトリ

学ぼう

モデリング

地形

粉砕

破壊を参照してください。

次のステップ

導師レベル