Navigation

Ventuz Introduction

  • Introduction
  • Getting Started
  • Ventuz Editions
  • Ventuz Products
  • Realtime Rendering
  • Frequently Asked Questions
  • Common Mistakes
  • Deploying a Ventuz Presentation
  • Scene Performance and Tweaks

Quick Guides

  • Quick Guide Index
  • Business Logic
  • 3D Art
  • 2D Art
  • Programming
  • System Engineer

General

  • Index
  • What's New
  • Ventuz System Requirements
  • Configuration Editor
  • Device Configuration
  • Machine Configuration
  • Render Setup Editor
  • Introduction to Compositions, Screens and Outputs
  • Explanation of Compositions, Screens and Outputs
  • Live Runtime Control
  • Project and Show Management
  • Web Configuration Editor
  • Communication Protocol Overview
  • GPI Configuration for Runtime or Director
  • Introduction to the Ventuz Video Engine
  • Supported Formats
  • Supported Hardware
  • Color Management and HDR Workflow
  • Multisampling / Anti-Aliasing
  • Input Subsystem
  • Ventuz Proprietary Files
  • Migrating Configs & Content to Ventuz 8
  • Migrating Content to Ventuz 7
  • Migrating Content to Ventuz 6
  • Migrating Content to Ventuz 5
  • Summary Shortcuts
  • Terminology
  • Manual Index

Ventuz Designer

  • Designer Indices
Introduction
  • Designer Introduction Index
  • Designer Overview
  • Realtime Rendering
  • Project Browser
  • Designer Interface
  • Designer Options
  • Working with Nodes
  • Hierarchy and Content Editors
  • 2D Workflow
  • 3D Workflow
  • PBR Workflow
  • Animation Workflow
  • Best Practices
  • Reading Data in Ventuz
  • Display Images and Movies
  • Scene Performance and Tweaks
  • Deploying a Ventuz Presentation
  • Render to Disk
  • Multi Screen and Output Setup
  • Explanation of Compositions, Screens and Outputs
  • Workflow of using Multi Screens
  • Multi GPU
  • Previs
User Interface
  • Designer User Interface Index
  • Designer Interface
  • Renderer Window
  • Layer Editor
  • Property Editor
  • Property Groups
  • Hierarchy Editor
  • Content Editor
  • Find and Replace
  • Toolbox
  • Animation Editor
  • Shader Editor
  • Text Editor
  • Message View
  • Scene Tree
  • Stage Editor
  • Container Outline
  • Watches Editor
  • Scene Control Window
  • Performance Statistics
2D Workflow
  • 2D Workflow Index
  • 2D Workflow
  • Layer Editor
  • Common Layer Properties
  • IPP Effects
  • Color Correction FX
  • Distortion FX
  • Filter FX
  • Hierarchy and Content Editors
  • Display Images and Movies
3D Workflow
  • 3D Workflow Index
  • 3D Workflow
  • Hierarchy and Content Editors
  • Renderer Window
  • Camera Navigation
  • Manipulate Objects with Gizmos
  • In-Scene Editing
  • Layer Editor
  • Property Editor
  • Hierarchy Editor
  • Working with Nodes
  • Isolated Objects
  • Containers
  • Text Rendering
  • Character Sets
  • Geometry Import
  • Color Management and HDR Workflow
  • Display Images and Movies
  • Particle System
  • Creating Realistic Reflections
  • Unreal Integration
  • Notch Integration
  • E2E Node Overview
Logic Workflow
  • Logic Workflow Index
  • Hierarchy and Content Editors
  • Content Editor
  • Hierarchy Editor
  • Working with Nodes
  • Property Editor
  • Containers
  • Project and Scene Data
  • Reading Data in Ventuz
  • Display Images and Movies
  • Input Subsystem
  • Multitouch
  • TUIO Protocol
  • Open Sound Control
  • Unreal Integration
  • Notch Integration
  • E2E Node Overview
Animation Workflow
  • Animation Workflow Index
  • Animation Workflow
  • Animation Editor
  • Content Editor
  • Hierarchy Editor
  • Property Editor
  • Animation and State Engine
  • Templates
  • Template Engine
  • Scene Transitions
  • Unreal Integration
  • Notch Integration
Project Structure
  • Project Structure Index
  • Annotations
  • Project Documentation
  • Projects and Scenes
  • Project Properties
  • Project Maintenance
  • Project and Scene Data
  • Scene Management
  • Scene Statistics
  • Scene Tree
  • Performance Statistics
How Tos
  • Designer How to Index
  • How to Run Ventuz
  • How to Work with Designer
  • Ventuz Designer Drag&Drop Workflow
  • How to work with Shadows
  • How to Build Content for Multiple Screens
  • How to Use Emoijs
  • How to Build a Template
  • How To Build a Custom Scene Transition
  • How to Use the Color Difference Keyer
  • How To Enable HDR Video Output
  • How To Work with the HDR Layer
  • How Create Lens Flares and Bloom
  • How to Create Visuals Loader Node
  • How to Remote Control with a Phone
  • How to use Head Mounted Displays
  • How to work with 3D Reference Layers
  • How to create a Firework Particle System
  • How to use DDS with new Block Compression modes
  • How To use Stream Out
  • How to use the Substance Integration
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To use the Vertex Integration
  • How To Control and Customize Ventuz
  • How to use the Companion with Director
  • How to build Previs scenes with Designer
  • How to migrate from Ventuz 6 to Ventuz 7
Reference
  • Available Nodes
  • Animation Nodes
  • Material&Color Nodes
  • Data Nodes
  • E2E Nodes
  • Geometry Nodes
  • Interaction Nodes
  • IO Nodes
  • Layers
  • Light Nodes
  • Logic Nodes
  • Previs Nodes
  • Render Option Nodes
  • Slides Nodes
  • Sound Nodes
  • Text Nodes
  • Texture Nodes
  • VR Nodes
  • World Nodes
  • Summary Shortcuts
  • Layer Editor Shortcuts
  • Hierarchy Editor Shortcuts
  • Content Editor Shortcuts
  • Animation Editor Shortcuts
  • Director Shortcuts

Ventuz Director

  • Index
  • What's New in Director
  • Introduction
  • Environment
  • Show
  • User Interface
  • Assets
  • Taking Action
  • Property Editor
  • Shot Box
  • Project Data
  • Pages
  • Playlist
  • Transitions
  • Timeline
  • Content References
  • Topology
  • Channels
  • Macros
  • Designing Templates
  • Scene Transitions
  • Plug-Ins
  • Shortcuts
  • Command Line Options
  • Application Settings
  • Glossary
  • GPI Configuration

Ventuz Runtime & Configuration

  • Runtime Index
  • Configuration Editor
  • Machine Configuration
  • Device Configuration
  • Project and Show Management
  • Live Runtime Control
  • Web Configuration Editor
  • Render Setup Editor
  • Warping and Soft-Edging Editor
  • Multi Screen and Output Setup
  • How to migrate from Ventuz 6 to Ventuz 7
  • Machine Clustering
  • Supported Hardware
  • Director Mode
  • How to Configure Audio
  • How to Use Live Options
  • How To Play Out On Multiple Screens
  • How To Render on a Machine Cluster
  • How to Use Head Mounted Displays
  • How to Setup Spout with Ventuz
  • How to Use Newtek NDI
  • How to Use a Mixed Frame Rate Cluster
  • How to Use Tracking

Multi Output & Display Setups

Introduction
  • Introduction to Compositions, Screens and Outputs
  • Explanation of Compositions, Screens and Outputs
  • Machine Clustering
  • Support for multiple GPU's
Editors
  • Configuration Editor
  • Device Configuration
  • Render Setup Editor
  • Warping and Soft-Edging Editor
  • Designer Stage Editor
Workflows
  • How to Build Content for Multiple Screens
  • How To Play Out On Multiple Outputs
  • How To Render on a Machine Cluster
  • How to build Previs scenes with Designer

How To

Designer
  • Designer How to Index
  • How to Run Ventuz
  • How to Work with Designer
  • Ventuz Designer Drag&Drop Workflow
  • How to work with Shadows
  • How to Build Content for Multiple Screens
  • How to Use Emoijs
  • How to Build a Template
  • How To Build a Custom Scene Transition
  • How to Use the Color Difference Keyer
  • How To Work with the HDR Layer
  • How To Enable HDR video output
  • How Create Lens Flares and Bloom
  • How to Create Visuals Loader Node
  • How to Remote Control with a Phone
  • How to use Head Mounted Displays
  • How to work with 3D Reference Layers
  • How to create a Firework Particle System
  • How to use DDS with new Block Compression modes
  • How to use the Substance Integration
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To build and playback Ventuz Content in Vertex
Runtime & Configuration
  • Runtime How Tos Index
  • How to Configure Audio
  • How to Use Live Options
  • How To Play Out On Multiple Screens
  • How To Render on a Machine Cluster
  • How to use Head Mounted Displays
  • How to setup Spout with Ventuz
  • How to use Newtek NDI
  • How to use a Mixed Frame Rate Cluster
  • How to use Tracking
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To build and playback Ventuz Content in Vertex
  • Multi Screen and Output Setup
  • How To Enable HDR video output
Director
  • How To Control Multiple Graphics Independently From Each Other
  • How to use the Companion with Director

Ventuz Node Reference

Available Nodes Overview
  • All Designer Nodes
ANIMATION
  • Mover
  • Alternator
  • Simple Control
  • Timeline Control
  • Anmation Rig
  • Keyframe Animation
  • Animation Group
COLOR/MATERIAL
  • Alpha
  • Fog
  • Ground Fog
  • Sky Box
  • Color to RGBA
  • HSLA to Color
  • RGBA to Color
  • Color Transformer
  • HLSL Shader
  • Color
  • Material
  • Color Picker
  • Substance Material
DATA
  • Database
  • Excel
  • JSON
  • RSS Feed
  • Resource Linker
  • Text File
  • XML
E2E
  • E2E Axis
  • E2E Data
  • E2E Control
  • E2E Layer
  • E2E Provider
  • E2E Node Overview
GEOMETRY
  • Rectangle
  • Rounded Rectangle
  • Gradient Rectangle
  • Overlay Rectangle
  • Cube
  • Circle
  • Sphere
  • Cylinder
  • Cone
  • Torus
  • Chart
  • Random Points
  • Mesh Loader
  • Geometry Import (Live)
  • Volume
  • Get Bounding Box
  • Arrow
  • Particle System
  • Path Renderer
  • Geometry Renderer
INTERACTION
  • Interaction Rect
  • Touch Button
  • Touch Excluder
  • Touch Marker
  • Touch Paint
  • Touch Pattern
  • Touch Proxy
  • Touch Ripples
  • Touch Transformations
  • Web Browser
  • Touch Teleport
  • Touch Simulator
INPUT/OUTPUT (I/O)
  • GPI
  • Joystick
  • Keyboard
  • MIDI
  • Mouse
  • Network
  • Open Sound Control
  • Serial
  • Timecode
  • DMX
  • HTTP
  • RamDiskWriter
LAYER
  • 3D Layers
  • 3D Layer Reference
  • Composition Layer
  • 2D Layers
  • PSD Import Layer
  • E2E Layer
  • Mixer Layer
  • Others
LIGHT
  • Light Sources
LOGIC
  • Array Processing
  • Convert To Text
  • Cluster Synchronization
  • Counter
  • Data Portals
  • Date Time
  • Directory
  • Dispatcher
  • Enumeration
  • Expressions
  • Invert
  • Log
  • Loop Breaker
  • Math Effects
  • Matrix Operations
  • Scene Event
  • Script
  • String Operations
  • System ID
  • Render Setup Relation
  • Text Splitter
  • Timer
  • Toggle
  • Transition Info
  • URL
  • Value Switch
  • Value Buffer
  • Variables
  • Visual Indexer
PREVISUALIZATION
  • Introduction to Previs
  • Previs Screen
  • Previs Canvas
  • Compositon List
  • Rendersetup Objects
  • Composition Projector
  • Previs Screen Render Options
RENDER OPTIONS
  • Alpha Blending
  • Color Write
  • Alpha Testing
  • Clip Plane
  • Filter
  • Mask
  • Mirror
  • Effect
  • Render Cube Map
  • Draw Modes
  • Stencil
  • ZTesting
SOUND
  • Audio Clip
  • Sound
  • Volume Control
  • Audio Analysis
SLIDES
  • Slide Manager
  • Slide
  • Slide Port
  • Pivot
TEXT
  • Text Effects
  • Text Layouts
  • Text Rendering
TEXTURE
  • Background
  • Hatch
  • Image
  • Texture
  • SVG Loader
  • Gradient Texture
  • Live Video
  • Movie Stream
  • Movie Frame
  • Movie Clip
  • Texture Loader
  • Snapshot
  • Snapshot Framebuffer
  • Texture Saver
  • Video Source Selector
  • VIO Input
  • Spout Receiver
  • NDI Receiver
  • Substance Loader
  • QR Code
VR/AR
  • Tracked Devices
  • Draw Tracked Devices
WORLD
  • Axis
  • Billboard
  • GetWorld
  • SetWorld
  • Arrange
  • Ticker
  • Layout
  • Group
  • World Z Sort
  • YesNo
  • Switch
  • Spread
  • Filter Pass
  • Set Pass
  • Hierarchy Container
  • Scene Port
  • Content Container
  • Template Port
  • Container Info
  • Camera
  • Paths
  • Cloner

Advanced and Development

  • Advanced and Development Index
  • Command Line Options
  • Ventuz IP Ports
  • Ventuz Machine Service
  • TUIO
  • .NET Scripting
  • HLSL Shader Programming
  • Ventuz API and SDK
  • Ventuz Extension API
  • Ventuz VIO API
  • Ventuz File Format (VFF)
  • Ventuz Stream Out API
  • Lens Calibration File for FreeD
  • E2E Node Overview
  • Unreal Integration
  • Notch Integration
Remoting
  • Remoting Index
  • Remoting Overview
  • How To Control and Customize Ventuz
  • Remoting 4
  • Remoting 4 via Websockets
  • Remoting 4 via HTTP
  • Director Remoting
  • Deprecated Remoting

Misc

  • Presets
« Previous:
» Index «
Next: »

Multi GPU Rendering

Table of Contents

  1. Ventuz Multi GPU Scaling
  2. Setup
    1. Device Config
    2. Hardware synchronization
    3. Render on GPU
  3. Display Groups
  4. GPU Masks
    1. Video Inputs
    2. Movie Clips
  5. Effect Bleed
  6. Hardware Enumeration
  7. Limitations
  8. Licensing

Ventuz Multi GPU Scaling

Ventuz unique approach to multi graphics card (GPU) scaling can be used to increase the resolution rendered by a machine. The new approach is different from what is usually done for games for both the problem and the solution.
Games usually improve rendering speed on a single output. Ventuz improves the performance per machine and per output by using multiple GPUs for multiple outputs.
Every GPU only renders the content for the outputs connected to that GPU. Using this method, Ventuz has a linear performance increase. Traditional multi GPU approaches like NVLink or CrossFire does not have desireable performance in scaling even if using only two GPUs. By scaling over multiple GPUs in one machine, Ventuz increases the rendering resolution over multiple outputs, exceeding 16k resolutions on a single machine.

Included in this functionality, it is possible to render completely different content on each GPU.

For offscreen devices like SDI, NDI, etc., it is possible to use an additional GPU that renders these outputs discreetly.

Beyond what can be rendered on a single machine, Ventuz can synchronize a cluster of machines to scale even further.

Multi-Display Synchronization Notice

Following recent Microsoft Windows Updates to Full Screen Optimization, synchronization between frames across multiple GPU outputs may not be as predictable as before.

Enabling Mosaic Mode can solve this issue. In most cases, the timing discrepancies are minimal and unlikely to be noticeable to users. However, in scenarios where multiple displays are arranged with adjacent pixels, such as two touching LED walls using two outputs, such discrepancies may become more apparent. To ensure optimal synchronization in these situations, we recommend enabling Mosaic Mode. This only occurs when using multiple outputs on one GPU. If only one output is being used, this issue does not occur even if using multiple GPUs in one machine.

Setup

To enable Ventuz to render across multiple GPUs a few steps are needed:

Device Config

When multiple GPUs are installed in the machine, they appear as individual devices in the Ventuz Device Configuration. By adding outputs of the respective GPU, that GPU is used. By using outputs from multiple GPUs, multi GPU rendering is automatically enabled.

For non-GPU outputs such as SDI, NDI, Off-Screen, etc the Render on GPU setting can be used to activate a specific GPU for rendering.

Hardware synchronization

A major advantage of using a single machine with multiple GPUs instead of using multiple machines, is that there are no additional steps to ensure there is synchronization between different Ventuz Runtimes. However, when using multiple GPUs in one machine, a synchronization board - like the AMD S400 or Nvidia Quadro Sync - is required to synchronize the multiple GPUs at the hardware level to achieve a smooth, stable, and synchronized result.

Render on GPU

Output devices in the Device Configuration have a Render on GPU property. This property allows the user to select which physical GPU output the content will be rendered.

For GPU outputs, it is natural that they are rendered on the GPU to which the output belongs. This is what the default setting does for GPU outputs. It is rarely needed to change the rendering of a GPU output to a different GPU. Doing so will even lower performance as the rendered frames need to be transferred over to the GPU that's outputting the content.

For non-GPU outputs such as SDI, NDI, Off-Screen etc the Render on GPU property can be used to designate a specific GPU to render that non-GPU output. For example, one GPU can be used for Director and its preview, while a second GPU can be used to render an SDI output exclusively. For non-GPU outputs, the setting default will render on GPU0.

Note that Off-Screen Shared Surfaces used for preview in Director need to be rendered on the same GPU where the Director application is shown.

The Preview Window can also be rendered on a specific GPU. The setting default renders the window on the GPU on which it is currently shown. Note: the Preview Window will only show content that is rendered on the same GPU that the Preview Window is rendered on to ensure the best possible performance.

Display Groups

Since Ventuz 7, it is not necessary to create a display group using Nvidia Mosaic or AMD Eyefinity to output across multiple GPU outputs as was required in earlier versions of Ventuz. Using display groups using these GPU features will still work if this is the desired workflow. Creating a display group for outputs on one GPU can increase the stability by decreasing the render queues that Ventuz has to handle.

Spanning a display group across multiple GPUs will not enable Ventuz multi GPU rendering. Each display group is presented to Ventuz as a single output by the graphics driver, thus will appear and be processed as one output to Ventuz. Creating a display group across multiple GPUs will only use the performance of one GPU while the driver distributes the image across the GPUs which only increases the amount of outputs. This is a result of how the GPU drivers handle these features.
If Mosaic is necessary for your setup, it would be advised to set up multiple Mosaic devices to ensure each GPU is rendering itself, and not relying on GPU0 to do the work for all cards.

GPU Masks

To be able to see a resource on an output that is connected to a GPU, it has to be uploaded to that GPU. In general, the Ventuz Runtime render engine distributes everything needed to render the pixels to the GPUs.

Live video inputs and some movie clips may need to be manually restrict which GPU the assets are uploaded to according to where it will be displayed. Restricting which GPU receives the uploaded assets can increase performance of the system. This can be done by what we refer to as GPU Masks:

Video Inputs

Video input devices in the Device Configuration have a Use on GPUs property. By default, each frame of every video input used in the scene is uploaded to each GPU that exists and is used in that machine. The process of uploading the frames from the input device to the GPU can be time consuming, especially for higher resolutions, frame rates, and for multiple videos or inputs that are used simultaneously.
Ventuz can not determine where that video input will be shown automatically, it is always ready to display them on all GPUs by default.

In some setups it may be known that a video input will only be visible on certain outputs and not others. With Use on GPUs Ventuz will not share or send these inputs to GPUs that won't be using them; This will optimize the performance of the machine. Selecting one or more GPUs here will provide this input only to the GPUs selected. If changing these settings in an existing presentation, performance testing should take place.

Movie Clips

Movie Nodes have a property called GpuMask. Similar to the Video Inputs, this allows a movie to be restricted to certain GPUs. Software decoded movies that are decoded on the CPU have advantage that each frame bypasses the GPU memory. In a scenario where multiple movies are played back in the scene but will, by design, only be visible on outputs of a certain GPU, pushing all movie frames to all GPUs is unnecessary and can become a bottleneck, especially for high resolution and high framerate videos.
Hardware decoded movies that are decoded on the GPU itself, using the GpuMask prevents every movie from being decoded on all GPUs if not every one is displaying this movie. Letting each GPU only decode what is needed leaves more performance for other tasks.

For high resolution video walls with high resolution video playback, it is a common to pre split the movie into parts that match the rendered GPU area. Setting the GPU Masks accordingly can provide a massive improvements in performance.

Effect Bleed

Using post processing effects such as Layer Effects may have the same problem that exist in Cluster Rendering. The solutions used to solve this issue in Cluster Rendering can be used to solve these issues in Multi GPU Rendering.
One issue can come from Layers that have effects or filters such as blurs. A blur may present issues at the borders of each discreet output on different GPUs. Read more about it on the Cluster page, including a list of affected effects.

Hardware Enumeration

Ventuz enumerates GPUs according to the PCI slot enumeration on the motherboard, they are not related to how Windows enumerates. Ventuz does this to create an overall stable system. In the event that Windows or the GPU's driver settings are changed, using the logical addresses, re-ordering issues are avoided.
The outputs per GPU are enumerated starting with the one closest to the motherboard.
GPUs and outputs both start with 0.

Enumeration is visible in the Device Config.
Additionally GPU and output can be selected and deselected with the Live Option Label Outputs when the Runtime is running.

Limitations

  • How To Render on a Machine Cluster
    • Layer Effect limitations
    • Windows Touch limitations
  • How To use the E2E with Unreal
    • Cluster and MGPU limitations
  • How to Use Head Mounted Displays
    • Not usable in a MGPU or Cluster setup
  • Unreal Integration
    • Not advised to be used with MGPU or a Cluster
  • Device Configuration
    • Windows Touch not fully working in a Cluster
  • Multi Touch
    • Windows Touch not fully working in a Cluster
  • Mover and Alternator
    • Mover node might get out of sync
  • Web Browser
    • Only usable on the primary GPU
  • Video
    • Video playback and loading needs to be taken care of

Licensing

To use more than one GPU with Ventuz an appropriate license is required. Please check the edition comparison table on our homepage: ​https://www.ventuz.com/editions/

« Previous:
» Index «
Next: »
Copyright 2025 Ventuz Technology