SEE THE BIG PICTURE: SCALABLE VISUALIZATION SOLUTIONS FOR HIGH RESOLUTION DISPLAYS Doug Traill Senior Solutions Architect dtraill@nvidia.com
LARGE FLAT WALL DISPLAYS MOSAIC Creating a single unified Desktop Up to 16 Displays Supported on Quadro + NVS Linux, Windows 7 + Windows 8 Image courtesy of Vislogix 6x6 interactive display wall built using MOSAIC
IMMERSIVE DISPLAYS Quadro Sync Sync's up to 4 GPUs in workstation MOSAIC with Sync Supported on Quadro K5000 + K6000 Linux, Windows 7 + Windows 8 Image courtesy of Visbox Immersive Room driven by 1 workstation with 4 Quadro K5000s + Quadro Sync
ULTRA HIGH RESOLUTION DISPLAYS USING CLUSTERS Quadro Sync Up to 50 Quadro Sync cards in a cluster Control via NVAPI Control + Monitor using NVWMI Image Courtesy of BARCO/Elbit Systems 4k cluster
NOT EVERY SURFACE IS FLAT Warp + Intensity Adjustment API Projection Correction Curved Surfaces Projection Mapping Image courtesy of Christie Digital Projection mapping on to a one fifth scale physical car
QUADRO FEATURES FOR HIGH RESOLUTION DISPLAY WALLS Custom Resolutions MOSAIC Tiled Displays 10/12 bit Color GTF, DMT, CVT, CVT-RB, Manual timing Seamless Desktop across multiple GPUs Automatic MOSAIC setup on tile displays using Display ID Support High Dynamic Range Displays EDID Management Capture and Read EDID from file 4K Resolution DP1.2 HDMI 1.4b / HDMI 2.0 MOSAIC + Sync Framelock, Overlap support, 3D stereo GPU Direct 4 Video Picture-in-Picture support. Ultra high resolution Desktop Up to 16k by 16k External or Internal Sync Genlock/TTL Sync. Internal Sync 3D Stereo OpenGL/DirectX, active, passive, pixel packed Display Port MST Support multi-streaming devices Warp + Intensity API NVAPI/NVWMI Display Clone Modes GPU Affinity Edge-blending, projection mapping. Windows + Linux Programmatically control driver. Display Port Clone, Pan & Scan clone, 4K cloning Multi-GPU support and Swap Groups
8K FROM SD TO 8K 4K HD: 1080P HD: 720P SD From SD to 8K Exponential Pixel Growth Image Courtesy: Rose Adler Leighana Ginther Jackie Osterday
FROM HD TO 4K & BEYOND INCREASING DISPLAY RESOLUTIONS Increasing Display Resolutions 4320 2400 8K (8K UHD) 8K 7680x4320 (8K UHD) 7680x4320 DILA 4K 4096x2400 DCI 4K 4096x2160 4K UHD 4 times HD res 8K UHD 16 times HD res Professional 4K projectors 4096x2160 4096x2400 2160 Ultra HD (4K UHD) 3840x2160 1080 Full HD -1920x1080 5K (UWTV) 5120x2160 3840 4096 3840 4096 5120 5120 7680 7680
DRIVING ULTRA HIGH RES DISPLAYS MAX SINGLE CABLE BANDWIDTHS/RESOLUTIONS Connector Version Max pixel clock Color depth Max resolution for single cable 1.2 ~592 MHz 12bpc Up to 4K @ 60Hz Display Port 1.1a ~330 MHz 10bpc Up to 4k @ 30Hz 2.0 * ~600 MHz 12bpc Up to 4K @ 60Hz HDMI DVI 2.0 ~330 MHz 6bpc (YUV 4:2:0) Up to 4K @ 60Hz 1.4b ~330 MHz 10bpc Up to 4k @ 30Hz 1.0 to 1.3 Does not support 4K Dual Link 330 MHz 8bpc Up to 4K @ 30Hz Single link 165 MHz Does not support 4K Resolution per cable is a function of the connection bandwidth and color depth NOTE: Displays, extenders, switches may not implement full speed connections *Not aware of any display that has implemented higher bandwidth part of HDMI 2.0 spec
DRIVE MULTI-DISPLAYS INDEPENDENT DESKTOPS
WITH MOSAIC ONE LARGE DESKTOP
MOSAIC SUPPORTED ON NVS + QUADRO Unified Desktop up to 16 Displays* i.e. for Digital Signage 4 NVS510 cards for 16 displays For interactive content 4 K5000s All cards in the system must be identical All displays must support common display timing Support Bezel Correction Windows 7, 8 + Linux support. *All displays need to have identical timing. *16 display support for Kepler GPUs
MOSAIC WITH SYNC FEATURES Number of Synchronized displays/projectors from a single system with MOSAIC GPU Options Up to 2 Up to 4 Up to 8 Up to 12 Up to 16 K6000 1 GPU 1 GPU SLI (2GPUs) or 2GPUs + Quadro Sync K5200 new 1 GPU 1 GPU SLI (2GPUs) or 2GPUs + Quadro Sync K5000 1 GPU 1 GPU SLI (2GPUs) or 2GPUs + Quadro Sync K4200 new 1 GPU 1 GPU** 2GPUs** + Quadro Sync 3GPUs + Quadro Sync 3GPUs + Quadro Sync 3GPUs + Quadro Sync 3GPUs + Quadro Sync 4GPUs + Quadro Sync 4GPUs + Quadro Sync 4GPUs + Quadro Sync 4GPUs** + Quadro Sync Seamless, Tear-Free Displays Projector Overlap API for Warp & Intensity Adjustment Active and Passive 3D Stereo support Windows 7/8 & Linux XP support limited to 2 displays per GPU *SLI support must be certified platform - http://www.nvidia.com/object/quadro_sli_compatible_systems.html *XP R319 is last released driver branch **Note K4200 has 3 physical outputs requires DP MST hub for 4 displays per card.
Quadro Sync - Focus on the image not the artifacts
WHY IS SYNC IS IMPORTANT? Bezel s hide sync issues!!! Image from gizmodo.com
MULTI-GPU SYNC Framelock Stereo lock Swap lock
VERTICAL SYNC t0 t0 + t1 t0 + t2 Display 1 Display 2 Display 3 t0 t0 + t1 t0 + t2 Vertical Sync is the pulse that indicates the start of the display refresh. To avoid tearing on a single screen the application swap buffers are synced to vertical sync. Although all three displays may have the same refresh rate vertical sync start may be different. This can result in tearing between displays.
FRAMELOCK/GENLOCK t0 t0 t0 Display 1 Display 2 Display 3 Framelock/Genlock provides a common sync signal between graphics cards to insure the vertical sync pulse starts at a common start. This is commonly referred to as Frame Synchronization Framelock Synchronization is generated from a master node. All other nodes would be sync to this. Genlock synchronization is from an external sync generator (house sync). Each node attached to the genlock signal is synced from that signal. Framelock & Genlock can be mixed in the cluster. With the master node being synchronized from the genlock pulse
STEREO LOCK Frame 1 Frame 2 Frame 3 Frame 4 Frame 5 Frame 6 V Sync 120Hz VESA Stereo Sync High left Low right No information that tells a display or stereo glasses which eye is left or right
STEREO LOCK Framelock GPU 1 No stereo lock GPU 2 This will result in eyes being swapped between displays
STEREO LOCK GPU 1 stereo lock GPU 2 Stereo sync is in phase between GPUs
SWAPBUFFERS Front Swap Swap Swap Swap Back Front Back Swap GPU Draw (1) Draw (2) Draw (3) Draw (4) Back Front Back Front Display Scan Scan (1) Scan (2) Scan (3) Scan (4) 0 16 32 48 64 80
SWAPBUFFERS Front Swap Swap Swap Back Front Back GPU Draw (1) Draw (2) Draw (3) Back Front Back Front Display Scan Scan (1) Scan (1) Scan (2) Scan (3) 0 16 32 48 64 80 Time (ms)
SWAPBUFFERS IN A CLUSTER Node 1 Node 2 Node 3 Node 4 Each node is now rendering a scene with different complexity i.e from least to highest we get: 1. node 3 ~ 16ms = 60fps 2. node 4 ~ 36ms = 30fps 3. node 2 ~ 53ms = 15fps 4. node 1 ~ 99ms = 10fps With each node running at a different rate the user would perceive tearing on the screen. We need a mechanism to ensure that each node will swap at the same time.
SWAP GROUP AND SWAP BARRIER NVIDIA Extensions to OpenGL /DirectX (via NVAPI) Swap Group provides synchronization multiple GPUs in a single host Swap Barrier provides synchronization of GPUs across multiple nodes. Use RJ45 (framelock) connection on Quadro Sync so faster than sync over a network Node 1 Node 2 Node 3 Node 4 With Swap Barrier each node will wait until all nodes have completed their render 1. node 3 ~ 16ms = 10fps 2. node 4 ~ 36ms = 10fps 3. node 2 ~ 53ms = 10fps 4. node 1 ~ 99ms = 10fps
WHAT DOES SYNC DO Synchronize Multiple Displays Co-ordinate Buffer Swaps Align the scan out of multiple displays, GPU s, and systems HW based swap synchronization within a node or between clusters Maintain Stereo alignment between multiple systems Prevent tearing and image mis-alignment Synchronize to an internal or external timing source
G-SYNC GAMING MONITORS Approaches the problem differently GSYNC is a module put into the display Currently vsync tells GPU when to update Gsync tells the display when to update Currently only works for single displays attached Future version may support multiple displays.
MOSAIC - Setup and configuration
SIDE NOTE ON MOSAIC NAMING Display Card Windows Linux Notes 1 NVS510 MOSAIC metatmodes Bezel correction no overlap Multiple NVS510 MOSAIC Option BaseMOSAIC Bezel correction no overlap Single K4000 MOSAIC metatmodes Bezel correction no overlap Multiple K4000s MOSAIC Option BaseMOSAIC Bezel correction no overlap 1 K5000 Premium MOSAIC MOSAIC with Sync metamodes Overlap supported Two K5000s (no SLI or Sync) MOSAIC Option BaseMOSAIC Bezel correction no overlap Two K5000s with SLI or Quadro Sync Premium MOSAIC MOSAIC with Sync Option SLI MOSAIC Overlap support. Even using Quadro Sync its called SLI MOSIAC
SETTING UP MOSAIC Control Panel Configuremosaic NVWMI NVAPI Large display walls Setup from a remote machine Powershell scripts Program directly Incorporate MOSAIC setup into your own application Driver Install Download from NVIDIA driver section Install with Driver under advanced options Registered Developer for NDA access NVAPI
MOSAIC GRIDS columns Rows x columns <= 16 Max Horizontal or vertical Pixels <= 16384 1 2 3 rows 4 5 6 Vertical Pixels 7 8 9 Enumeration of the Grid always starts top left and goes left to right Horizontal pixels
UNDERSTANDING TOPOLOGIES Column overlap or bezel correction Row Overlap or Bezel correction 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Bezel correction will increase overall pixel size i.e each display is 1920x1080 Bezel per column is 100 Total horizontal width = 1920*4 + 100*3 = 7980 Overlap correction will decrease overall pixel size
BEZEL AND OVERLAP CORRECTION Bezel Correction Will make the image look continuous as we render under the bezel Overlap Correction For projectors it maintain the Aspect Ratio of the display.
ANATOMY OF A SYSTEM stereo sync bracket CPU0 PCIe 1 CPU0 PCIe 2 GPU-0 GPU-1 FL 0 CPU1 PCIe 2 CPU1 PCIe 1 GPU-3 GPU-2 FL 1 SYNC STEREO Quadro Sync card HOUSE SYNC con3 con2 con1 con0
REAR PANEL BOXX 8950 4 K6000S VESA Stereo Bracket VESA stereo only one per system required Doesn t require PCIe slot just a blank GPU 0 GPU 1 Slot 2 Slot 4 K6000 Master GPU will have a green LED after POST GPU 3 Slot 6 GPU 2 Slot 8 Quadro Sync Connect to all 4 GPUs. At boot-up LEDs will be amber showing GPU connected
PORT NUMBERING GPU 0 GPU 1 GPU 2 VESA Stereo Bracket Quadro Sync C C C B B B D A D A D A Ports auto enumerate depending what is attached i.e. A + D are attached A = 0,0 D = 0,1 A + B + D are attached A = 1,0 B = 1,1 D = 1,2 A + B + C + D are attached A = 2,0 B = 2,1 C = 2,2 D = 2,3
RELATING PORTS TO GRID 0,0 0,1 0,2 1 2 3 1,0 1,1 1,2 4 5 6 2,0 2,1 2,2 7 8 9 configuremosaic.exe set rows=3 cols=3 1 2 3 4 5 6 7 8 9 configuremosaic.exe set rows=3 cols=3 out=0,0 out=0,1 out=0,2 out=1,0 out=1,1 out=1,2 out=2,0 out=2,1 out=2,2 Option MetaModes GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1920+0, GPU-0.DFP-2: 1920x1080 +3840+0, GPU-1.DFP-0: 1920x1080 +0+1080, GPU-1.DFP-1: 1920x1080 +1920+1080, GPU-1.DFP-2: 1920x1080 +3840+1080, GPU-2.DFP-0: 1920x1080 +0+2160, GPU-2.DFP-1: 1920x1080 +1920+2160, GPU-2.DFP-2: 1920x1080 +3840+2160
LINUX Single GPU (4 outputs) MetaModes only Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +0+1080, 1920x1080 +1920+1080" Option "nvidiaxineramainfo" "FALSE" SubSection "Display" Depth 24 EndSubSection EndSection 0,0 0,1080 Connection:GPU-0.DFP-0 Resolution: 1920x1080 Offset 0,0 Connection:GPU-0.DFP-2 Resolution: 1920x1080 Offset 0,1080 1920,0 Connection:GPU-0.DFP-1 Resolution: 1920x1080 Offset 1920,0 Connection:GPU-0.DFP-3 Resolution: 1920x1080 Offset 1920,1080 Overlap support on high-end Quadro GPUs
LINUX 2 GPUs example Use BaseMOSAIC (No SLI or QUADRO Sync) Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "BaseMosaic" "TRUE" Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1950+0, GPU-1.DFP-0: 1920x1080 +0+1100, GPU-1.DFP-1: 1920x1080 +1950+1100" Option "nvidiaxineramainfo" "FALSE" SubSection "Display" Depth 24 EndSubSection EndSection 0,0 0,1100 Connection:GPU-0.DFP-0 Resolution: 1920x1080 Offset 0,0 Connection:GPU-1.DFP-0 Resolution: 1920x1080 Bezel: 20 pixels Offset 0,1100 1950,0 Connection:GPU-0.DFP-1 Resolution: 1920x1080 Bezel: 30 pixels Offset 1950,0 Connection:GPU-1.DFP-1 Resolution: 1920x1080 Bezel: 20,30 Offset 1950,1110 Example Showing Bezel correction.
LINUX 2 GPUS with Quadro Sync or SLI connector Use SLI MOSAIC 1820,0 Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "SLI" "MOSAIC" Option "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1: 1920x1080 +1820+0, GPU-1.DFP-0: 1920x1080 +0+1000, GPU-1.DFP-1: 1920x1080 +1820+1000" Option "nvidiaxineramainfo" "FALSE" SubSection "Display" Depth 24 EndSubSection EndSection 0,1000 0,0 Connection:GPU-0.DFP-0 Resolution: 1920x1080 Offset 0,0 Connection:GPU-1.DFP-0 Resolution: 1920x1080 Overlap: 80 pixels Offset 0,1000 Connection:GPU-0.DFP-1 Resolution: 1920x1080 Overlap: 100 pixels Offset 1820,0 Connection:GPU-1.DFP-1 Resolution: 1920x1080 Overlap 100,80 Offset 1820,1000 Example Showing Overlap correction. Note SLI connector only works on Quadro SLI certified workstations
LINUX TIPS Window Manager (GNOME, Unity, KDE etc) may over-ride MOSAIC settings. Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "SLI" "Mosaic" Option "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +3840+0" Option "nvidiaxineramainfo" "False" SubSection "Display" Depth 24 EndSubSection EndSection 1x3 MOSAIC but three separate Desktops MOSAIC is running i.e. Windows should open full screen Section "Extensions" Option "Composite" "Disable" Option "RANDR" "Disable" EndSection 1x3 MOSAIC Single Desktop
LINUX TIPS Set SLI MOSAIC in xorg.conf After restarting X - Enable Framelock (Not automatic)
NV-WARP WARP + INTENSITY API Windows 7/8 Now Part of Public NVAPI https://developer.nvidia.com/nvapi Linux API is part of the driver installer ftp://download.nvidia.com/xfree86/nvid ia-settings/nvidia-settings-340.24.tar.bz2 In Samples Image courtesy of Joachim Tesch - Max Planck Institute for Biological Cybernetics nv-control-warpblend.c Sample SDK Contact us QuadroSVS@nvidia.com
4K DISPLAY TYPES Growing eco-system of display devices Prosumer Professional 4K TVs Home Theater Projectors Computer monitors 4K Panels 4K Projectors
HDMI 1.4/2.0 4K TVS/ HOME THEATER HDMI 1.4b 3840x2160 @ 30Hz HDMI 2.0 (Driver R340) 4096x2160 @ 60Hz Same bandwidth as HDMI 1.4b (same cable) Color compression YUV 4:2:0 Quadro Card DVI to HDMI pin compatible DP to HDMI Type 2 Dongle (passive adaptor)
RGB COLOR
YCBCR BRINGING COLOR TO A BLACK AND WHITE TV Y = Luminosity Cb = Blue-ness Cr = Red-ness
½ THE DATA SIZE 4:4:4 4:2:0
WHAT S THE IMPACT? 4:2:0 4:4:4
WHAT S THE IMPACT? 4:4:4 4:2:0
CONVERTING TO HDMI NVIDIA DRIVER AUTOMATICALLY SWITCHES TO HDMI SIGNALING HDMI over DVI Driver detects HDMI device Switches to HDMI signaling Uses DVI single line cables no need for dual link DVI to HDMI cable DP to HDMI dongles Type 2 dongle spec introduced Jan 2013 by VESA. Supports 4K HDMI devices Passive dongle Quadro K5000 and K6000 can drive up to 4 HDMI 4K devices from a single card. Two via DP dongles and two via DVI.
4K COMPUTER MONITORS DISPLAY PORT 1.2 MST CONNECTIVITY Display Port 1.2 input Panel acts a Multi-streaming hub So two 1920x2160 channels over single cable Vesa Display ids New extension to VESA EDID standard 1920 x 2160@60Hz 1920 x 2160@60Hz EDID identifies its preferred display resolution. New extension identifies position in tiled display NVIDIA driver (R331) will automatically enable MOSAIC when it detects these displays to give single Desktop.
SUMMARY/QUESTIONS Quadro SVS Reduces complexity. Contact us at QuadroSVS@nvidia.com