Using Grid K1 for CUDA.

I am running a virtual machine on a Dell server with a Grid K1 box, and the following spec with one of the Keplers for my exclusive use. The system spec is as follows

• Grid K1 / 1 x Kepler GPU in passthrough mode, Driver vers.
• Citrix Xen Server Vers. 6.2 Service pack 1.
• Accessing session via RDP.
• CUDA sdk Vers. 6.0

I have built some of the examples without any problem in Visual Studio 2008 , with some warnings but no errors and I am attempting to run the “particles” example. When I try to run it however, I get the following error, exiting with

“Required OpenGL extensions missing.”

I suspected that it may be a problem with the OpenGL interop facility so I tried it with the Black-Scholes example, which I think does not use this and I got a different error exiting with

code38(cudaErrorNoDevice) “cudaGetDeviceCount(&device_count)”

Just by way of a sanity check I ran Google Earth, which has both DirectX and OpenGL modes and it ran the DirectX but not the OpenGL, citing no suitable GPU present. I know this is not exactly exhaustive scientific testing but it may be a further indicator to an OpenGL interop problem.

I would be grateful for any thoughts or suggestions please as I am hoping to use the particles example as a template for a meshless fluids simulation application, and remote access to a Grid box would greatly simplify and facilitate my research.

Many thanks for your attention,
Gerry Heapes.

Hello Gerry,

please try to connect via the HDX 3D Pro remote protocol from Citrix and let us know what the outcome is?

Erik Bohnhorst | Solution Architect – GRID
NVIDIA Corporation

I understand from our support guys that HDX 3D Pro is a licenced component of Xen Desktop and is not available to us right now. Do you think this may be the problem because if it is, I can investigate with our admin people whether it could be purchased ? Are there any other possibilities ?
Regards , Gerry.

The problem you have Gerry is that RDP hides our driver - essentially it creates its own virtual software graphics adaptor. You have a couple of choices. One is to do as Erik mentioned and implement the rest of the stack so to speak by adding support for HDX 3D Pro and accessing your VM via Xendesktop and Citrix receiver or as a quick and dirty test install VNC on the VM and access it via VNC viewer. I would emphasize that the latter is not recommend for any kind of production because like any machine accessed by VNC your performance will be questionable but it will give you a way to verify things are working because VNC is looking at the real NVIDIA frame buffer.

Hello again and sorry about the delay getting back. I have installed RealVNC and it works for general use outside of RDP. Using it I have been able to run Google Earth as a test in both DirectX and OpenGL mode so I am fairly certain that it is directly accessing the frame buffer as you said. The hardware acceleration on this appears fine.
I have re-compiled the particles example and tried to run it but unfortunately I am still getting the same error of no CUDA device. I will re-examine every aspect of the compilation chain again just to make sure it is not a compiler problem but failing that it does not seem to be possible to run it.
Many thanks for your suggestions but it looks like the only solution is to try and get the proprietary tools in place as you suggest.
Regards , Gerry.

Can you confirm you’re using this driver.

Hello Jason, I have downloaded the driver you indicated and installed it with great success. All is now working as advertised without any problem at all. Many thanks to you and all your colleagues for helping in this matter and it greatly facilitates using the hardware available to us for research. I would never have thought of using a normal desktop driver for this purpose on a virtual machine and it is a great tribute to yourselves that the virtualization technology allows it in such a seamless way.

Thank you once again to yourself, Erik and thepilot (you know who you are).
Regards , Gerry.

I am curious if the new Tesla M6 and M60 (GRID 2.0) GPUs can be accessed for CUDA processing from XenDesktop/XenApp VMs. We have a couple of Telsa K80 units that work great, but cannot be used for graphics renderings, and are wondering if some calculations could steal cycles here and there from an M6 or M60 at appropriate times that would not interfere so much with interactive users, and hence provide use for both very different user areas. Thanks,

K1/K2 can be used for CUDA in passthrough.

M6/M60 can be used for CUDA in passthrough and 1:1 vGPU profiles (Virtual Workstation Extended Edition feature)

The Maxwell boards are Tesla boards so built for both compute and graphics and can be configured to be pure compute boards if desired.

However, K1/2 and M60/6 are single precision boards unlike the K80’s which are double precision.

Thanks, Jason, for the information. I have seen double-precision CUDA benchmark results for the M6/60 which are really slow, so my guess is that means it can handle the task but it has to be run in emulation mode, hence the performance hit?

Correct. Which is why for double precision the K80’s are still the best choice.

Maxwell is king for Deep Learning though when it comes to computational usage, so the architecture ot choose is down to the job it’s needed for.

Thank you, Jason, that makes total sense.

If I put together a dedicated server for XenApp hosting of M60 GPUs, I think I’m going to name it SilverHammer ! :-) Still waiting for the pricing to be released, supposedly around Sep. 15, 2015.