April 4-7, 2016 | Silicon Valley
Shounak Deshpande, NVIDIA
GET TO KNOW THE NVIDIA GRID TM SDK Shounak Deshpande, NVIDIA - - PowerPoint PPT Presentation
April 4-7, 2016 | Silicon Valley GET TO KNOW THE NVIDIA GRID TM SDK Shounak Deshpande, NVIDIA Background NVIDIA GRID SDK AGENDA Measuring Performance Maximizing Performance Interactive Question-Answer Session 2 CLOUD\REMOTE GRAPHICS VDI
April 4-7, 2016 | Silicon Valley
Shounak Deshpande, NVIDIA
2
3
VMWare, CITRIX, Dassault, and more
GeForceNow Windows DirectX / OpenGL Linux OpenGL
4
CLIENT
Decode Render
User input
SERVER
Render Capture Encode
Remote Graphics Server Network Client IP Network
CPU NIC
5
Graphics Shim layers (app streaming) Platform Virtualization (VDI) Hypervisors (VDI) Full Virtualization (VDI)
Client Anything Server
AWS G2 Instance GRID K520, M30 GPU Tesla M60 GPU NVIDIA Quadro GPUs
6
7
8
NVENC Low latency Hardware Encoder NVIFR API
Low Latency Render Target Capture
NVFBC API
Low Latency Desktop Capture
NVFBC library NVIFR library
9
Brute force, capture all on screen Orthogonal to Graphics APIs Easy to integrate with NVENC API Easy onboarding, no process injection Efficient than GDI-based screen scraping One session per display No-frills RenderTarget capture Supports Directx9,10,11, OpenGL APIs Easy to integrate with NVENC API Needs to be injected in target process One session per target window Enables higher density of streamed apps
10
NVFBC: NVIDIA Frame Buffer Capture NVIFR: NVIDIA In-band Frame Render L i n u x W i n d
s
NVIFR - Directx NVIFRToSys NVIFRToHWEnc NVIFR - OpenGL NVFBC NVFBCCuda NVFBCToSys NVFBCToHWEnc NVFBCToDX9Vid NVFBC NVFBCToCuda NVFBCToSys NVFBCToHWEnc NVIFR - Directx NVIFRToSys NVIFRToHWEnc NVIFRToSys NVIFRToHWEnc
11
Legacy 2014 2015 2016
SDK
GRID K340, K520, K1, K2, Quadro K2000+ GRID M30, Quadro M6000
support
enhancements – quarter-res first pass; lossless encoding; 4:4:4 encoding
support
parity for NVENC features with Windows
support
agnostic interface for HW encoder
H.264 YUV 4:4:4 NVIFR capture+encode for DX10/DX11 applications
desktop to DirectX 9 video memory surface, along with diffmap support
capture
NVFBC interfaces
NvIFRHWEncode
agnostic interface for HW encoder
Tesla M60
K520, K1, K2, Quadro 4000+ support
support
8.1 support
K520, K1, K2, Quadro 4000+ support
support
12
13
14
Create NVFBC session object Set up NVFBC session “Capture” starts here Read Grabbed buffer
15
NvFBCCreateEx() Create NVFBC Session
NVFBC enabled, not in use NVFBC already in use Fail
Setup NVFBC Session
Success
Grab()
Success Success
Begin
NVFBC Not Enabled
NvFBCEnable() Enable NVFBC NvFBCGetStatusEx() Check NVFBC Status
Fail \ Terminate
Release NVFBC Session
Fail
Exit
Fail Success
16
IDirec3DSurface9*
IDirec3DSurface9* Captured buffer Video Bitstream packet
< 1millisec ~ 2 millisec ~ 4 millisec * Latency approx. for 1080p desktop streamed as 720p video
17
18
19
App Shim DX/OGL Runtime NVIFR
Render() or Present()
Compressed Video Bitstream
20
Application allocates
event handles Select the rate control mode and encoder preset according to use case
21
The event handles passed to NvIFRSetupHWEncoder will be signaled when NVENC has finished work submitted by NvIFRTransferRenderTargetToHWEncoder API
22
Create session Create TransferObject
23
Capture + Encode Retrieve output bitstream Release buffers for re-use
24
25
26
27
28
29 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
30 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
31 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
32 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
33 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
34 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
NvIFRCopyToSharedSurface for DX9, StretchRect to a shared surface for DX9Ex ResourceCopyRegion to a shared surface for Dx1x
NvIFRCopyFromSharedSurface for DX9, StretchRect from a shared surface for DX9Ex ResourceCopyRegion from a shared surface for Dx1x
35 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
36 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.
37
38
39
IFBC_v1 NvFBCGetGRIDSDKVersion() * NVFBC session Object IFBC_v2
*Similar API is available for NVIFR
40
41
https://developer.nvidia.com/grid-app-game-streaming http://www.nvidia.com/object/cloud-get-started.html http://www.nvidia.com/object/enterprise-virtualization.html
42
latency streaming
NVFBCToHWEnc
43
April 4-7, 2016 | Silicon Valley
For Queries related to NVIDIA Capture SDK, get in touch with us at: GRID-devtech-support@nvidia.com