How to use NVIDIA Pascal GPUs and vGPU hardware encoding on Linux HDX 3D pro VDAs

How to use NVIDIA Pascal GPUs and vGPU hardware encoding on Linux HDX 3D pro VDAs

book

Article ID: CTX232456

calendar_today

Updated On:

Description

Starting from version 7.17, Linux VDA 3D Pro supports vGPU for NVIDIA Pascal GPUs (Tesla P40) so that customers can better benefit from the latest NVIDIA vGPU technologies. It also supports hardware encoding on all NVIDIA supported vGPU profiles in Linux, which removes the legacy limitations on vGPU hardware encoding.

In this article, we provide steps to use NVIDIA Pascal GPUs (Tesla P40) and hardware encoding on Linux HDX 3D Pro VDAs, as well as general troubleshooting tips.


Instructions

How to use NVIDIA Pascal GPUs (Tesla P40) on Linux HDX 3D Pro VDAs
Before proceeding, ensure the following requirements are met:
  • NVIDIA GRID™ - Tesla P40 cards
  • Linux VDA 7.17 and above
  • A server capable of hosting your hypervisor (such as, Citrix XenServer) and NVIDIA Tesla P40 cards.
  •  Download NVIDIA virtual GPU software package for your chosen hypervisor, which consists of the following software:
    • NVIDIA Tesla P40 host drivers for your hyperviso
    • NVIDIA Tesla P40 software display drivers for supported Linux guest VMs
    • The minimum support NVIDIA Linux driver version is 384.73
  • Prepare XenApp and XenDesktop 7.17 environment
   To use NVIDIA Tesla P40 GPUs on Linux HDX 3D Pro VDAs, perform the following steps:
  1. Install and configure NVIDIA Virtual GPU Manager on your choosing hypervisor, refer to the following instructions:
  2. Assign Tesla P40 virtual GPUs to the target Linux VM, both “pass-through the whole GPU” and vGPU scenarios are supported. Refer to following instructions:
  3. Install the NVIDIA Virtual GPU guest drivers on the target Linux VM, refer to following instructions: Installing the NVIDIA Virtual GPU Software Display Driver on Linux
  4. License NVIDIA vGPU so that the target Linux VM is capable of running the full range of DirectX and OpenGL graphics applications. See the instructions at Licensing NVIDIA vGPU
  5. Install Linux VDA HDX 3D pro on the target Linux VM, make sure that the VDA can register to the Delivery Controller and the published Linux desktop sessions can be launched successfully.
How to enable/disable hardware encoding
In previous versions of Linux VDA, there are limitations on hardware encoding as follows:
  • Only H.264 YUV420p is supported
  • Nvidia Tesla M60 card vGPU profiles other than 8Q do not support cuda, as a result, NVENC API and Citrix 3D Pro hardware encoding are not available.
In this release, we removed the above limitations by using OpenGL related NVIDIA Capture APIs instead of the original NVFBC APIs. Now, the hardware encoding is available on all NVIDIA supported vGPU profiles in Linux and all NVIDIA supported hardware encoding methods listed at Video Encode and Decode GPU Support Matrix.

To enable hardware encoding for Linux VDAs, perform the following steps:
  1. On Citrix Studio, enable the Citrix HDX policy Use hardware encoding for video codec. This policy is enabled by default.
  1. Edit the HDX policy Use video codec for compression and set the value as “For the entire screen” (default setting: Use when preferred).
 
Note: You need to log off the current user session from either Citrix Studio or inside the Linux VDA and log on again to make the policy settings take effect.

After configuration, you can confirm if the hardware encoding is active in user session using nvidia-smi tool:
  1. Launch Linux VDA session
  2. Open the terminal on Linux VDA and run command nvidia-smi, type “C+G” means hardware encoding is active:
User-added image
Note: The NVIDIA System Management Interface, nvidia-smi, is a command-line tool that reports management information for NVIDIA GPUs. See NVIDIA System Management Interface nvidia-smi for more information.
Troubleshooting Tips
For a general troubleshooting purpose, you can:
  • Refer to NVIDIA vGPU Troubleshooting Guide for basic troubleshooting steps and how to collect debug information when filing a bug report
  • Collect more detailed logs on Linux VDA:/opt/Citrix/VDA/bin/setlog level GFX_X11 VERBOSE
    And look for “ctxgfx*” lines in /var/log/xdl/hdx.log.

Issue/Introduction

This article describes the method to use NVIDIA Pascal GPUs and vGPU hardware encoding on Linux HDX 3D pro VDAs, as well as the requirements and troubleshooting tips.

Additional Information

Configuring Citrix XenServer 7.0 for Graphics
Virtual GPU Software User Guide
NVIDIA System Management Interface nvidia-smi
NVIDIA vGPU Troubleshooting Guide  
Video Encode and Decode GPU Support Matrix
NVIDIA VIDEO CODEC SDK
Key Features of Video Codec SDK
NVIDIA Capture SDK