NVIDIA VIDEO CODEC SDK SAMPLES GUIDE. SDK Samples Guide

Similar documents
NVIDIA VIDEO ENCODER 5.0

HIGH-PERFORMANCE GPU VIDEO ENCODING ABHIJIT PATAIT SR. MANAGER, NVIDIA

AGENDA. Overview GPU Video Encoding NVIDIA Video Encoding Capabilities. Software API Performance & Quality. Kepler vs Maxwell GPU capabilities Roadmap

HIGH PERFORMANCE VIDEO ENCODING WITH NVIDIA GPUS

NVIDIA GeForce GTX 580 GPU Datasheet

GRID SDK FAQ. PG January Frequently Asked Questions

XID ERRORS. vr352 May XID Errors

Whitepaper. NVIDIA Miracast Wireless Display Architecture

Technical Brief. Quadro FX 5600 SDI and Quadro FX 4600 SDI Graphics to SDI Video Output. April 2008 TB _v01

NVIDIA CUDA GETTING STARTED GUIDE FOR MICROSOFT WINDOWS

Technical Brief. Introducing Hybrid SLI Technology. March 11, 2008 TB _v01

GRID VGPU FOR VMWARE VSPHERE

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

NVIDIA Tesla Compute Cluster Driver for Windows

Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual

Video Encoding on Intel Atom Processor E38XX Series using Intel EMGD and GStreamer

Intel Media SDK Features in Microsoft Windows 7* Multi- Monitor Configurations on 2 nd Generation Intel Core Processor-Based Platforms

NVIDIA GeForce Experience

Intel Media SDK Library Distribution and Dispatching Process

Technical Brief. NVIDIA nview Display Management Software. May 2009 TB _v02

GRID LICENSING. DU April User Guide

How To Write A Cg Toolkit Program

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

NVIDIA CUDA INSTALLATION GUIDE FOR MICROSOFT WINDOWS

REMOTE HIGH FIDELITY VISUALIZATION. May 2015 Jeremy Main, Sr. Solution Architect GRID

Cloud Gaming & Application Delivery with NVIDIA GRID Technologies. Franck DIARD, Ph.D. GRID Architect, NVIDIA

TESLA K20X GPU ACCELERATOR

NVIDIA Mosaic Technology

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

GRID VIRTUAL GPU FOR CITRIX XENSERVER Version ,

DUAL MONITOR DRIVER AND VBIOS UPDATE

Power Benefits Using Intel Quick Sync Video H.264 Codec With Sorenson Squeeze

QuickSpecs. NVIDIA Quadro M GB Graphics INTRODUCTION. NVIDIA Quadro M GB Graphics. Overview

QUADRO AND NVS DISPLAY RESOLUTION SUPPORT

Tegra Android Accelerometer Whitepaper

NVIDIA GRID DASSAULT CATIA V5/V6 SCALABILITY GUIDE. NVIDIA Performance Engineering Labs PerfEngDoc-SG-DSC01v1 March 2016

TESLA K20 GPU ACCELERATOR

TESLA M2075 DUAL-SLOT COMPUTING PROCESSOR MODULE

MetaMorph Microscopy Automation & Image Analysis Software Super-Resolution Module

NVIDIA GeForce GTX 750 Ti

TEGRA LINUX DRIVER PACKAGE R21.1

QUADRO POWER GUIDELINES

COMPUTING. SharpStreamer Platform. 1U Video Transcode Acceleration Appliance

QuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Technical Specifications

GPU Usage. Requirements

TESLA K10 GPU ACCELERATOR

Intel 845G/GL Chipset Dynamic Video Memory Technology

Black-Scholes option pricing. Victor Podlozhnyuk

QuickSpecs. NVIDIA Quadro K4200 4GB Graphics INTRODUCTION. NVIDIA Quadro K4200 4GB Graphics. Overview

NVIDIA GRID 2.0 ENTERPRISE SOFTWARE

TESLA C2050/2070 COMPUTING PROCESSOR INSTALLATION GUIDE

HAMA IP Camera CGI commands V1.1

IP Video Rendering Basics

TESLA M2050 AND TESLA M2070 DUAL-SLOT COMPUTING PROCESSOR MODULES

MPEG-4 AVC/H.264 Video Codecs Comparison

GRID VIRTUAL GPU FOR CITRIX XENSERVER Version ,

QuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Overview. NVIDIA Quadro K5200 8GB Graphics J3G90AA

NVIDIA NVIEW DESKTOP MANAGEMENT SOFTWARE

NVIDIA GRID K1 GRAPHICS BOARD

SQUEEZE SERVER. Release Notes Version 3.1

Windows Embedded Security and Surveillance Solutions

White Paper AMD PROJECT FREESYNC

Cisco TelePresence VCR Converter 1.0(1.8)

DRM Driver Development For Embedded Systems

NVIDIA GeForce GT630 DP (2GB) PCIe x16 Card Graphics Card. QuickSpecs. Overview. Models. DA Worldwide Version 4 November 27, 2012 Page 1

REMOTE VISUALIZATION ON SERVER-CLASS TESLA GPUS

Binomial option pricing model. Victor Podlozhnyuk

Monte-Carlo Option Pricing. Victor Podlozhnyuk

Keynote DeviceAnywhere/HP Application Lifecycle Management (HP ALM/QC) Integration Guide. TCE Automation 5.2

NVIDIA GRID K2 GRAPHICS BOARD

Alberto Corrales-García, Rafael Rodríguez-Sánchez, José Luis Martínez, Gerardo Fernández-Escribano, José M. Claver and José Luis Sánchez

Intel Perceptual Computing SDK My First C++ Application

PLANNING FOR DENSITY AND PERFORMANCE IN VDI WITH NVIDIA GRID JASON SOUTHERN SENIOR SOLUTIONS ARCHITECT FOR NVIDIA GRID

NVIDIA Quadro Professional Drivers Release 178 Notes

GPU Christmas Tree Rendering. Evan Hart

Specification Update. January 2014

HOW MANY USERS CAN I GET ON A SERVER? This is a typical conversation we have with customers considering NVIDIA GRID vgpu:

OpenCL Programming for the CUDA Architecture. Version 2.3

Ensure that the AMD APP SDK Samples package has been installed before proceeding.

Wirecast Release Notes

Technical Brief. DualNet with Teaming Advanced Networking. October 2006 TB _v02

Intel 810 and 815 Chipset Family Dynamic Video Memory Technology

Release 302 Graphics Drivers for Windows - Version

Get the Best out of NVIDIA GPUs for 3D Design and Engineering in the Cloud

MPEG-4 AVC/H.264 Video Codecs Comparison

Quest vworkspace Virtual Desktop Extensions for Linux

QuickSpecs. NVIDIA Quadro K2200 4GB Graphics INTRODUCTION. NVIDIA Quadro K2200 4GB Graphics. Technical Specifications

We are presenting a wavelet based video conferencing system. Openphone. Dirac Wavelet based video codec

VIRTU Universal MVP Installation Guide

AN3998 Application note

NVIDIA Quadro M4000 Sync PNY Part Number: VCQM4000SYNC-PB. User Guide

2013 Intel Corporation

GOLD20TH-GTX980-P-4GD5

Software Evaluation Guide for Autodesk 3ds Max 2009* and Enemy Territory: Quake Wars* Render a 3D character while playing a game

Dell NetVault Backup Plug-in for Advanced Encryption 2.2. User s Guide

QuickSpecs. NVIDIA Quadro K1200 4GB Graphics INTRODUCTION PERFORMANCE AND FEATURES. Overview

Case Study: Real-Time Video Quality Monitoring Explored

Microsoft Smooth Streaming

Release 295 Graphics Drivers for Windows - Version

Displaying Stereoscopic 3D (S3D) with Intel HD Graphics Processors for Software Developers August 2011

Transcription:

NVIDIA VIDEO CODEC SDK SAMPLES GUIDE SDK Samples Guide

REVISION HISTORY Revision Date Author Description 1.0 Nov 14, 2014 YG Initial release. 2.0 Nov 25, 2015 EY Update to NVIDIA Video Codec SDK 6.0 Added NVCUVID decode samples 3.0 June 10, 2016 SM/VU/GJ Update to NVIDIA Video Codec SDK 7.0 ii

TABLE OF CONTENTS NVIDIA Video Codec SDK Samples Guide... 1 Introduction... 1 1. BUILDING SAMPLES... 2 Windows... 2 Linux... 2 2. SAMPLES REFERENCE... 3 2.1 NvEncoder... 3 2.2 NvEncoderCudaInterop... 4 2.3 NvEncoderD3DInterop... 5 2.4 NvEncoderLowLatency... 5 2.5 NvEncoderPerf... 7 2.6 NvTranscoder... 8 2.7 NvDecodeD3D9... 9 2.8 NvDecodeD3D11... 10 2.9 NvDecodeGL... 11 iii

NVIDIA VIDEO CODEC SDK SAMPLES GUIDE INTRODUCTION NVIDIA Video Codec SDK contains the following samples. The sample applications provided in the package are for demonstration purposes only and may not be fully tuned for Quality and/or Performance. Hence the users are advised to do their independent evaluation for Quality and/or performance. NvEncoder This sample demonstrates the usage of basic encoding functionality. NvEncoderCudaInterop This sample demonstrates the usage of encoding with CUDA surfaces. NvEncoderD3DInterop This sample demonstrates the usage of encoding with D3D9 surfaces. NvEncoderLowLatency This sample demonstrates the usage of low latency features such as Intra Refresh and Reference Picture Invalidations. NvEncoderPerf This sample demonstrates the maximum achieved encoding performance. NvTranscoder This sample demonstrates the transcoding capabilities of NVENC. NvDecodeD3D9 This sample demonstrates video decode with D3D9 visualization. NvDecodeD3D11 This sample demonstrates video decode with D3D11 visualization. PG-06155-001_v04 1

NvDecodeGL This sample demonstrates video decode and OpenGL visualization. 1. BUILDING SAMPLES Windows The Windows SDK samples are built using the Visual Studio IDE. Solution files (*.sln) are provided for Visual Studio 2010 and 2013. Complete samples solution files exist at: SDK7.0\Samples\ Each individual sample has its own set of solution files at: SDK7.0\Samples\<sample_dir>\ To build/examine all the samples at once, the complete solution files should be used. To build/examine a single sample, the individual sample solution files should be used Linux The Linux samples are built using makefiles. To use the makefiles, change the current directory to the sample directory you wish to build, and run make: $ cd <sample_dir> $ make 2

2. SAMPLES REFERENCE 2.1 NvEncoder The NvEncoder application demonstrates the code for doing a basic encoding using NVENC. It supports both H.264 and HEVC encoding with different presets. The application allows to configure bitrate, frame rate, number of B frames and allows the user to select from the given Rate Control Modes. The following are the options that may be specified for NvEncoder Application. -i <string> : Specifies the input YUV File that has to be encoded -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset hp High Performance Preset lowlatencyhp Low Latency High Performance Preset lowlatencyhq Low Latency High Quality Preset -startf <integer> : Specifies the starting frame Index for encoding. Default value is zero -endf < integer> : Specifies the end frame Index for encoding. Default value is zero -fps <integer> : Specifies the encoding frame rate -goplength <integer> : Specifies the GOP (Group of Pictures) Length -numb <integer> : Specifies the number of B frames -bitrate <integer> : Specifies the encoding average bitrate -vbvmaxbitrate <integer> : Specifies the VBV Maximum Bitrate -vbvsize <integer> : Specifies the Encoding VBV/HRD Buffer Size -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -qp <integer> : Specifies the qp value for Constant QP Rate Control Mode -devicetype <integer> : 0 DX9 Device Type 1 DX10 Device Type 2 DX11 Device Type 3 CUDA Device Type -inputformat <integer> : Specify the input format 0: YUV 420 3

-help : Prints Help Information 1: YUV 444 2: YUV 420 10-bit 3: YUV 444 10-bit 2.2 NvEncoderCudaInterop The NvEncoderCudaInterop application demonstrates the interoperability of the NVENC hardware encoder with CUDA surfaces. The following are the options that may be specified for NvEncoderCudaInterop Application. -i <string> : Specifies the input YUV File that has to be encoded -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height -startf <integer> : Specifies the starting frame Index for encoding. Default value is zero -endf < integer> : Specifies the end frame Index for encoding. Default value is zero -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset hp High Performance Preset lowlatencyhp Low Latency High Performance Preset lowlatencyhq Low Latency High Quality Preset -fps <integer> : Specifies the encoding frame rate -goplength <integer> : Specifies the GOP (Group of Pictures) Length -numb <integer> : Specifies the number of B frames -bitrate <integer> : Specifies the encoding average bitrate -vbvmaxbitrate <integer> : Specifies the VBV Maximum Bitrate -vbvsize <integer> : Specifies the Encoding VBV/HRD Buffer Size -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -qp <integer> : Specifies the qp value for Constant QP Rate Control Mode -deviceid <integer> : Specifies the GPU Device on which encoding will take place -help : Prints Help Information 4

2.3 NvEncoderD3DInterop The NvEncoderD3DInterop application shows the interoperability with DX Surfaces. This application takes a directory of BMP files as an input and generates the output encoded file. The following are the options that may be specified for NvEncoderD3DInterop Application. -bmpfilepath <string> : Specifies the input RGB BMP file path -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset hp High Performance Preset lowlatencyhp Low Latency High Performance Preset lowlatencyhq Low Latency High Quality Preset -fps <integer> : Specifies the encoding frame rate -goplength <integer> : Specifies the GOP (Group of Pictures) Length -numb <integer> : Specifies the number of B frames -bitrate <integer> : Specifies the encoding average bitrate -vbvmaxbitrate <integer> : Specifies the VBV Maximum Bitrate -vbvsize <integer> : Specifies the Encoding VBV/HRD Buffer Size -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -qp <integer> : Specifies the qp value for Constant QP Rate Control Mode -help : Prints Help Information 2.4 NvEncoderLowLatency The NVEncoderLowLatency application demonstrates the encoding for low latency streaming. The application shows the usage of features such as Intra Refresh and Reference Picture Invalidation, Dynamic Resolution Change and Dynamic Bitrate Change that are extremely useful in error prone streaming environments. 5

The following are the options that may be specified for NvEncoderLowLatency Application. -i <string> : Specifies the input YUV File that has to be encoded -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset hp High Performance Preset lowlatencyhp Low Latency High Performance Preset lowlatencyhq Low Latency High Quality Preset -startf <integer> : Specifies the starting frame Index for encoding. Default value is zero -endf < integer> : Specifies the end frame Index for encoding. Default value is zero -fps <integer> : Specifies the encoding frame rate -bitrate <integer> : Specifies the encoding average bitrate -vbvsize <integer> : Specifies the Encoding VBV/HRD Buffer Size -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -enccmdfile <string> : Specifies the name of the encode command file. The commands can be given in the following format. <encode command> <frame number> <param0> < param1> <param15> The following commands can be given in the encode command file: 0 : Dynamic Resolution Command <param0 = new Width> <param1 = new Height> 1 : Dynamic Bitrate Change <param0 = new bitrate> <param1 = new vbv size> 2 : Force IDR Frame 3 : Force Intra Refresh <param0 = intra refresh duration> 4. Invalidate Refrence Frame <param 0 = ref frame 0> <param1 = ref frame 1>..<param15 = ref frame 15> -intrarefresh <boolean> : Specifies if Intra Refresh is used during Encoding -intrarefreshperiod <integer> : Specifies the period for cyclic Intra Refresh -intrarefreshduration <boolean> : Specifies the number of frames over which intra refresh takes place -deviceid <integer> : Specifies the GPU Device on which encoding will take place -help : Prints Help Information 6

2.5 NvEncoderPerf The NvEncoderPerf application demonstrates the maximum encoding performance that may be achieved using NVENC. The application buffers a large number of input frames to prevent Disk I/O from being a bottleneck. The execution may be constrained by the Video Memory available on a system. The MAX_FRAMES_TO_PRELOAD compile time variable determines the number of frames that are buffered and may be reduced on systems with constrained Video Memory. The performance numbers give an indication of the Encode Compute Power available on NVENC. Applications need to be pipelined/multi-threaded in order to achieve maximum encode performance in practice. The following are the options that may be specified for NvEncoderPerf Application. -i <string> : Specifies the input YUV File that has to be encoded -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset hp High Performance Preset lowlatencyhp Low Latency High Performance Preset lowlatencyhq Low Latency High Quality Preset -startf <integer> : Specifies the starting frame Index for encoding. Default value is zero -endf < integer> : Specifies the end frame Index for encoding. Default value is zero -fps <integer> : Specifies the encoding frame rate -goplength <integer> : Specifies the GOP (Group of Pictures) Length -numb <integer> : Specifies the number of B frames -bitrate <integer> : Specifies the encoding average bitrate -vbvmaxbitrate <integer> : Specifies the VBV Maximum Bitrate -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -qp <integer> : Specifies the qp value for Constant QP Rate Control Mode -devicetype <integer> : 0 DX9 Device Type -inputformat <integer> : Specify the input format 0: YUV 420 1: YUV 444 1 DX10 Device Type 2 DX11 Device Type 3 CUDA Device Type 2: YUV 420 10-bit 7

-help : Prints Help Information 3: YUV 444 10-bit 2.6 NvTranscoder The NvTranscoder application demonstrates transcoding using NVENC. The transcoder application supports 8-bit depth H.264 encoded files for input that may be transcoded to H.264 or HEVC files. The following are the options that may be specified for NvTranscoder Application. -i <string> : Specifies the input file that has to be transcoded -o <string> : Specifies the output bitstream file -size <integer integer> : Specifies the input resolution width and height for encoding. If not specified, it will use the width and height of the input file. -codec <integer>: Specifies the codec (0) H264 and (1) - HEVC -preset <string> : hq High Quality Preset Preset Preset hp High Performance Preset lowlatencyhp Low Latency High Performance lowlatencyhq Low Latency High Quality -fps <integer> : Specifies the encoding frame rate. If not specified, it will use the fps of the input file. -goplength <integer> : Specifies the GOP (Group of Pictures) Length -numb <integer> : Specifies the number of B frames -bitrate <integer> : Specifies the encoding average bitrate -vbvmaxbitrate <integer> : Specifies the VBV Maximum Bitrate -vbvsize <integer> : Specifies the Encoding VBV/HRD Buffer Size -rcmode <integer> : Specifies the Rate Control Mode. 0 : Constant QP 1 : Single Pass VBR 2 : Single Pass CBR 4 : Single Pass VBR with Minimum QP 8 : Two Pass Frame Quality 16 : Two Pass Frame Size Cap 32 : Two Pass VBR -qp <integer> : Specifies the qp value for Constant QP Rate Control Mode -deviceid <integer> : Specifies the GPU Device on which encoding will take place -help : Prints Help Information 8

2.7 NvDecodeD3D9 The NvDecodeD3D9 application demonstrates the code for handling video decode of MPEG-2, VC-1, H.264, HEVC, VP8 and VP9 with NVDEC. The application takes a video file as input and renders the result to D3D9 window for display. The sample will use an included MPEG-2 file if no video file is provided. The following are the options that may be specified for NvDecodeD3D9 Application. NVDecodeD3D9 [parameters] -i=source - Input file for decoding -o=output.yuv Ouput YUV file -decodecuda - Use CUDA for MJPEG (Available with 64+ CUDA cores) -decodedxva - Use NVDEC for decode. -decodecuvid - Use NVDEC for decode (optimized) -vsync - Enable vertical sync. -novsync - Disable vertical sync. -repeatframe - Enable frame repeats. -updateall - always update CSC matrices. -displayvideo - display video frames on the window -nointerop - create the CUDA context w/o using graphics interop -readback - enable readback of frames to system memory -device=n - choose a specific GPU device to decode video with -nframestart=n set the start frame number -nframeend=n - set the end frame number 9

2.8 NvDecodeD3D11 The NvDecodeD3D9 application demonstrates the code for handling video decode of MPEG-2, VC-1, H.264, HEVC, VP8 and VP9 with NVDEC. The application takes a video file as input and renders the result to D3D11 window for display. The sample will use an included MPEG-2 file if no video file is provided. The following are the options that may be specified for NvDecodeD3D11 Application. NVDecodeD3D9 [parameters] -i=source - Input file for decoding -o=output.yuv Ouput YUV file -decodecuda - Use CUDA for MJPEG (Available with 64+ CUDA cores) -decodedxva - Use NVDEC for decode. -decodecuvid - Use NVDEC for decode (optimized) -vsync - Enable vertical sync. -novsync - Disable vertical sync. -repeatframe - Enable frame repeats. -updateall - always update CSC matrices. -displayvideo - display video frames on the window -nointerop - create the CUDA context w/o using graphics interop -readback - enable readback of frames to system memory -device=n - choose a specific GPU device to decode video with -nframestart=n set the start frame number -nframeend=n - set the end frame number 10

2.9 NvDecodeGL The NvDecodeGL application demonstrates the code for handling video decode of MPEG-2, VC-1, H.264, HEVC, VP8 and VP9 with NVDEC. The application takes a video file as input and renders the result to an OpenGL window for display. The sample will use an included MPEG-2 file if no video file is provided. The following are the options that may be specified for NvDecodeGL Application. NVDecodeGL [parameters] -i=source - Input file for decoding -o=output.yuv Ouput YUV file -decodecuda - Use CUDA for MJPEG (Available with 64+ CUDA cores) -decodecuvid - Use NVDEC for decode (optimized) -vsync - Enable vertical sync. -novsync - Disable vertical sync. -repeatframe - Enable frame repeats. -updateall - always update CSC matrices. -displayvideo - display video frames on the window -nointerop - create the CUDA context w/o using graphics interop -readback - enable readback of frames to system memory -device=n - choose a specific GPU device to decode video with -nframestart=n set the start frame number -nframeend=n - set the end frame number 11

Notice ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, MATERIALS ) ARE BEING PROVIDED AS IS. NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation. Trademarks NVIDIA, the NVIDIA logo, GeForce, Quadro, Tesla, and NVIDIA GRID are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright 2011-2016 NVIDIA Corporation. All rights reserved. 12