KeyShot has the ability to harness the full GPU-accelerated ray tracing power of NVIDIA RTX with OptiX. Available for both real-time rendering and local render output, KeyShot’s GPU Mode allows GPU resources to be accessed with one-click to take advantage of multi-GPU performance scaling and the dedicated ray tracing acceleration hardware in NVIDIA RTX-capable GPUs. You may toggle between GPU and CPU as needed. GPU raytracing in KeyShot supports the NVIDIA Maxwell microarchitecture found in the Quadro M6000 or GTX 980 and above.
GPU raytracing in KeyShot supports NVIDIA GPUs built on Maxwell microarchitecture and supports CUDA Compute Capability 5.2 or later found in the Quadro M6000 or GTX 980 and above. We recommend:
- Graphics cards on the NVIDIA RTX platform with a minimum of 8 GB memory.
- Driver Version: For both KeyShot GPU on both Quadro and GeForce we recommend as a minimum 471.11 on windows and 470.42.01 on linux respectively.
NVLink Multi-GPU Memory:
KeyShot GPU mode supports memory scaling for setups with multiple GPUs connected with NVIDIA NVLink. For example, two NVIDIA Quadro RTX 8000 GPUs will provide a combined 96 GB of GPU memory. When you have multiple GPUs connected with NVLink, you will see a difference in the available GPU Memory within the Heads Up Display in the Real-time view.
Using GPU Mode
To use GPU mode in the KeyShot Real-time View, select GPU mode on the Ribbon or Render, GPU mode from the Main Menu.
When GPU mode is active the CPU Usage drop-down in the Ribbon will be replaced with a GPU usage drop-down, listing the available GPUs. Here you can limit which GPUs are allocated for KeyShot. You can also limit the GPU usage under Render, GPU Usage from the Main Menu. Here the option is available even when GPU mode is not active, enabling you to set a limit before you enter GPU Mode.
In the Heads Up Display you can observe the GPU rendering speed with Samples per second, as well as the Memory Usage. If the GPU runs out of memory, KeyShot will revert to CPU rendering.
Local Render Output
If your GPU meets the requirements listed above you can render in GPU mode locally (Default and Background rendering) as well as send jobs to Network Rendering in GPU mode. You can either choose to have the Render Engine follow the Real-time View mode or specify either CPU or GPU in the Render Engine selection in the Render Dialog > Options.
If your GPU does NOT meet the requirements listed above, you can still send jobs to Network Rendering in GPU mode. To add GPU jobs for Network Rendering, simply select the GPU mode in the Render Engine section in Render Dialog > Options.
When Denoise is enabled, what you see in the Real-time View and the result of the rendering, may have slight variations. What causes the difference? When rendering images, the normal and diffuse maps are evaluated to produce the best possible result. These are not included in the real-time denoiser, which uses the fastest version of the denoiser under the given circumstances.
To curb GPU memory usage, it is best to keep an eye on your textures. The amount of GPU memory required depends on resolution and bit depth, not file format or absolute file size. Doubling the image resolution (e.g. 4K to 8K), quadruples the memory usage per texture.
For 8 bit RGBA textures:
- A single 8 bit 2K texture requires 16 MB.
- A single 8 bit 4K texture requires 64 MB.
- A single 8 bit 8K texture requires 256 MB.
For 32 bit textures, the memory usage is quadrupled:
- A single 32 bit 2K texture requires 64 MB.
- A single 32 bit 4K texture requires 256 MB.
- A single 32 bit 8K texture requires 1024 MB.
16 bit textures are converted to 32 bit internally on loading them, and thus have the same memory usage as 32 bit textures.
The output of GPU mode matches what you get with traditional CPU rendering in KeyShot, with only a few limitations.
- NURBS: NURBS-only objects will be ignored in GPU mode. Objects that have both triangles and NURBS data, will be shown as triangles.
- Legacy textures: Legacy 2d textures (from KeyShot 6 or earlier, labeled with (Legacy) in the Material Graph) are not supported. They will be ignored in GPU mode.
- Curve geometry: GPU mode has limited support for Curve geometry, e.g. curves imported from Alembic, Max, C4D or Maya. Curve geometry that is not fully supported will either be ignored or appear wrong.
- ZSpheres: GPU Mode does not support ZSphere geometry (from ZBrush).
Most of these limitations will trigger a warning icon , which will appear in the top right corner of the Real-time View. Click the icon for more information about what parts of the scene are impacted and by what.