- Switch Evaluation modes in the Preferences window
(Editors > Settings/Preferences > Preferences > Animation >
Evaluation).
The Evaluation Manager (EM) determines how to evaluate scenes, dividing the work among the available CPU and GPU computation resources to speed up performance. It works in the background, using the existing dirty propagation mechanism to convert the Directed Graph (DG) representation of your scene to a Forward Evaluation graph (FG). Once the FG is built, dirty propagation is disabled and an Evaluation schedule (ES) is built. The ES evaluates scene nodes in the correct order; this way, your scene produces the same result as with the “classic” Directed Graph-based evaluation.
You can watch a short movie that gives a high-level explanation of what the Evaluation Manager does
here.
The FG determines dependencies between scene elements; if two nodes in the scene are independent, they are good candidates for Parallel evaluation on different processors.
Note: Sometimes nodes in a scene cannot be evaluated in Parallel mode, despite being independent, due to the node’s implementation. In these cases, nodes are classified according to their different “thread-safety” levels.
Note: Animation using FBIK reverts to Serial Evaluation as FBIK creates missing dependencies in the Evaluation Manager. As FBIK has been deprecated, use HIK for whole-body inverse kinematics and retargeting.
Evaluation Modes
Choose the appropriate evaluation mode from the
(Editors > Settings/Preferences > Preferences > Animation >
Evaluation section:
-
DG
- Uses dependency graph-based evaluation mode for your scene. (See also
Dependency graph.) This was the default evaluation mode before
Maya 2016.
-
Serial
- Uses the Evaluation Manager but limits evaluation to a single core (serial evaluation). Use
Serial to troubleshoot your scene as it prioritizes scene fidelity over performance so you can locate evaluation errors.
Note: Sometimes scenes run more slowly in
Serial evaluation mode than in
DG mode. This is because
Serial evaluates more nodes than
DG mode. Because of this detailed evaluation, if the scene looks incorrect in
Serial mode, it is unlikely to work properly in
Parallel mode.
Sometimes improper evaluation in
Serial mode is caused by custom plug-ins.
-
Parallel
- Parallelizes evaluation and uses all available cores to evaluate your scene. If this mode causes problems with your scene, disable it and return to the previous standard: DG evaluation mode.
See
Profile a scene to improve performance.
This mode is active by default.
- GPU Override
- Works with the Evaluation Manager to accelerate deformations in either
Serial or
Parallel Evaluation mode. If your scene has standard
Maya deformers and the mesh geometry is dense, this can improve performance. Results vary based on the deformers and density of meshes in your scenes.
Note: GPU override works only with Viewport 2.0 and does not work with Quadro 4000 graphics cards on OSX.
- You can find a technical explanation of GPU Override at
Using Parallel Maya.
- Include Controllers in Evaluation Graph
- Activates/disables pre-population with the controller mechanism in the Evaluation Manager when building.
Differences between Evaluation Modes
Resource-heavy tasks take roughly the same amount of time in
DG,
Serial, and
Parallel modes. For example, if you use a deformer that takes 0.5 seconds to deform a mesh, evaluating this deformer in
Parallel does not add any change to performance.
If all EM/DG modes show the same bottleneck, addressing this problem will increase your performance gains. Use the
Profiler to demonstrate in a graph the amount of time that each process consumes.
However, if you encounter problems that appear only in
Parallel, this can indicate that there are thread contention problems with your scene, where multiple threads are trying to work at once while fighting for control of a shared resource.
Limitations
Some Maya features may produce incorrect results when using the Evaluation Manager. This includes cases such as when Viewport 2.0
motion blur is enabled, or when the scene contains certain
classic dynamics (for example, particles, cloth, rigid bodies).
Performance issues can occur with Python Commands when executing large amounts of commands. If this occurs, define MAYA_RETAIN_PYTHON_GIL in your environment. (MAYA_RELEASE_PYTHON_GIL is deprecated. It is true by default and can be overwritten by MAYA_RETAIN_PYTHON_GIL.)
Also, Python performance issues can occur when evaluating other threads with custom Python nodes.
Refer to the release notes for a complete list of known limitations.