評価マネージャのパフォーマンスを高める

評価マネージャ(EM)はシーンの評価方法を決定し、利用可能な CPU および GPU 計算リソースの間で作業を分割してパフォーマンス速度を向上させます。これはバックグラウンドで動作し、既存のダーティ伝搬メカニズムを使用してシーンの直接グラフ(DG)表現をフォワード評価グラフ(FG)に変換します。FG が構築されると、伝搬が無効になり評価スケジュール(ES)が構築されます。ES はシーン ノードを正しい順序で評価し、「クラシック」な直接グラフベースの評価と同じ結果をシーンを生成します。

こちらで、評価マネージャの機能に関して大まかに説明した短いムービーを視聴できます。詳細な技術的説明については、「Parallel Maya ホワイトペーパー」を参照してください。

FG はシーン要素間のディペンデンシーを決定します。シーンの 2 つのノードが独立している場合、異なるプロセッサでの並列評価に対する優れた候補となります。

注: 場合によっては、ノードの実装が原因でシーン内のノードが独立していても並列モードで評価できない場合もあります。この場合、ノードはそのさまざまな「スレッド安全性」レベルに応じて分類されます。
注: FBIK により評価マネージャでディペンデンシーが失われるため、FBIK を使用するアニメーションはシリアル評価に戻ります。FBIK は廃止されているため、全体インバース キネマティクスおよびリターゲットには HIK を使用します。

評価モード

エディタ > 設定/プリファレンス > プリファレンス > アニメーション > 評価(Editors > Settings/Preferences > Preferences > Animation > Evaluation)セクションから適切な評価モードを選択します。

評価モードの違い

リソースを大量に消費するタスクは、DGシリアル(Serial)並列(Parallel)モードでほぼ同じ長さの時間がかかります。たとえば、メッシュのデフォームに 0.5 秒かかるデフォーマを使用する場合、並列(Parallel)でこのデフォーマを評価してもパフォーマンスに変化はありません。

すべての EM または DG モードに同じボトルネックがある場合、この問題に対処することでパフォーマンスが向上します。プロファイラ(Profiler)を使用して各プロセスにかかる時間の長さをグラフで示します。

ただし、並列(Parallel)でのみ発生する問題がある場合には、共有リソースのコントロールと競合しながら複数のスレッドが一度に動作しようとするスレッド コンテンションの問題がシーンにある場合があります。

制限事項

キャッシュされた再生(Cached Playback)など、一部の Maya 機能では、評価マネージャを使用したときに正しい結果が得られません。たとえば、ビューポート 2.0(Viewport 2.0)モーション ブラーが有効になっている場合、またはシーンに特定のクラシック ダイナミクス(たとえば、パーティクル、クロス、リジッド ボディなど)が含まれる場合などです。
ヒント: 評価マネージャで問題が発生しているダイナミクス ノードのリストを返すスクリプトを実行することができます。「パフォーマンスを抑制するダイナミクス ノードを識別する」を参照してください。

Python コマンドを大量に実行すると、パフォーマンスの問題が発生する場合があります。その場合は、環境変数 MAYA_RETAIN_PYTHON_GIL を定義してください。(MAYA_RELEASE_PYTHON_GIL は廃止されました。既定値は true であり、MAYA_RETAIN_PYTHON_GIL で上書きできます。)

また、カスタム Python ノードで他のスレッドを評価するときにも Python のパフォーマンスの問題が発生する可能性があります。

既知の制限事項の一覧については、リリース ノートを参照してください。