NV Series - WDDM vs TCC

%3CLINGO-SUB%20id%3D%22lingo-sub-143568%22%20slang%3D%22en-US%22%3ENV%20Series%20-%20WDDM%20vs%20TCC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-143568%22%20slang%3D%22en-US%22%3E%3CP%3EAccording%20to%20the%20Azure%20GPU%20VM%20size%20guide%20(%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fvirtual-machines%2Fwindows%2Fsizes-gpu%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fvirtual-machines%2Fwindows%2Fsizes-gpu%3C%2FA%3E%3A(%3C%2Fimg%3E%3C%2FP%3E%0A%3CUL%20class%3D%22lf-text-block%20lf-block%22%20data-lf-anchor-id%3D%22b65d5df67c2c757d3a87894451af6ee8%3A0%22%3E%0A%3CLI%3E%3CSTRONG%3ENC%2C%20NCv2%2C%20and%20ND%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Esizes%20are%20optimized%20for%20compute-intensive%20and%20network-intensive%20applications%20and%20algorithms%2C%20including%20CUDA-%20and%20OpenCL-based%20applications%20and%20simulations%2C%20AI%2C%20and%20Deep%20Learning.%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3ENV%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Esizes%20are%20optimized%20and%20designed%20for%20remote%20visualization%2C%20streaming%2C%20gaming%2C%20encoding%2C%20and%20VDI%20scenarios%20utilizing%20frameworks%20such%20as%20OpenGL%20and%20DirectX.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EWhen%20I%20deploy%20a%20NV%20instance%2C%20the%20M60%20GPU%20defaults%20to%20TCC%20mode%20when%20I%20think%20that%20it%20should%20be%20in%20WDDM%20mode%3A%20TCC%20being%20useful%20for%20compute%20workloads%20(NC%20or%20ND%20size)%20vs%20WDDM%20being%20appropriate%20for%20graphics%20workloads%20(NV%20size).%20In%20my%20experience%2C%20when%20the%20GPU%20is%20in%20TCC%20mode%2C%20RDP%20sessions%20are%20not%20able%20to%20leverage%20the%20GPU.%20Using%20the%20nvidia-smi%20tool%20to%20change%20the%20mode%20to%20WDDM%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22prettyprint%20prettyprinted%22%3E%3CSPAN%20class%3D%22pln%22%3Envidia%3C%2FSPAN%3E%3CSPAN%20class%3D%22pun%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22pln%22%3Esmi%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22pun%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22pln%22%3Eg%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22pun%22%3E%7B%3C%2FSPAN%3E%3CEM%3E%3CSPAN%20class%3D%22pln%22%3EGPU_ID%3C%2FSPAN%3E%3C%2FEM%3E%3CSPAN%20class%3D%22pun%22%3E%7D%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22pun%22%3E-%3C%2FSPAN%3E%3CSPAN%20class%3D%22pln%22%3Edm%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22lit%22%3E0%3C%2FSPAN%3E%3C%2FPRE%3E%0A%3CP%3Eand%20then%20rebooting%20the%20VM%20allows%20the%20RDP%20session%20to%20leverage%20the%20GPU.%20However%2C%20this%20setting%20does%20not%20persist.%20If%20the%20VM%20is%20shutdown%2Fde-provisioned%2C%20when%20it%20is%20next%20started%2C%20the%20GPU%20is%20back%20in%20TCC%20mode%20and%20has%20to%20be%20switched%20to%20WDDM%20mode%20again.%20My%20research%20suggests%20that%20this%20is%20due%20to%20a%20setting%26nbsp%3Bstored%20in%20the%20EEPROM%20of%20the%20GPU.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAm%20I%20missing%20something%20from%20a%20configuration%20standpoint%20to%20either%20get%20an%20RDP%20session%20to%20use%20the%20GPU%20in%20TCC%20mode%20or%20to%20always%20start%20the%20VM%20in%20WDDM%20mode%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-143568%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3ECompute%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EGPU%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EVirtual%20Machine%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-152924%22%20slang%3D%22en-US%22%3ERe%3A%20NV%20Series%20-%20WDDM%20vs%20TCC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-152924%22%20slang%3D%22en-US%22%3E%3CP%3EUnfortunately%2C%20I%20haven't%20heard%20anything.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-152922%22%20slang%3D%22en-US%22%3ERe%3A%20NV%20Series%20-%20WDDM%20vs%20TCC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-152922%22%20slang%3D%22en-US%22%3E%3CP%3Esame%20issue%2C%20any%20MS%20response%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E
New Contributor

According to the Azure GPU VM size guide (https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes-gpu:(

  • NC, NCv2, and ND sizes are optimized for compute-intensive and network-intensive applications and algorithms, including CUDA- and OpenCL-based applications and simulations, AI, and Deep Learning.
  • NV sizes are optimized and designed for remote visualization, streaming, gaming, encoding, and VDI scenarios utilizing frameworks such as OpenGL and DirectX.

When I deploy a NV instance, the M60 GPU defaults to TCC mode when I think that it should be in WDDM mode: TCC being useful for compute workloads (NC or ND size) vs WDDM being appropriate for graphics workloads (NV size). In my experience, when the GPU is in TCC mode, RDP sessions are not able to leverage the GPU. Using the nvidia-smi tool to change the mode to WDDM:

nvidia-smi -g {GPU_ID} -dm 0

and then rebooting the VM allows the RDP session to leverage the GPU. However, this setting does not persist. If the VM is shutdown/de-provisioned, when it is next started, the GPU is back in TCC mode and has to be switched to WDDM mode again. My research suggests that this is due to a setting stored in the EEPROM of the GPU.

 

Am I missing something from a configuration standpoint to either get an RDP session to use the GPU in TCC mode or to always start the VM in WDDM mode?

2 Replies

same issue, any MS response?

Unfortunately, I haven't heard anything.