Running CUDA in a service Example of a CUDA service in Vista, Server 2008 and Windows 7

EDIT

For Tesla GPUs, please use the TCC (Tesla Compute Cluster) driver available in CUDA 3.0 and
3.1 to enable Services and Remote Desktop under Windows.

END

A few people have tried to create a Windows service that uses CUDA on Windows Vista, Windows Server 2008 and Windows 7. Since the Session 0 Isolation feature in these platforms means a service runs in session 0 and does not have access to the display devices, the service has no access to CUDA.

This example shows how a service can run in session 0 and launch a provider process in session 1 with access to CUDA devices.

The example is a VS2008 project which creates a Hello World service. If you build the project and then run (as administrator) CUDAService -install then it will install the service to start automatically on the next reboot. When the system is rebooted it will detect the console connect and launch the same executable in session1. It logs to a file in C:\ (defined in the Service.h file). You can also start the service interactively, once started it restarts the provider at logon/logoff.

CUDAService -uninstall terminates and removes the service.

The attachment is available below.
CUDAService.zip (13.5 KB)

Hi, we have a service running on a headless server that needs to use CUDA; we recently upgraded to 64 bit Win 7 and ran into the session zero isolation problem. The code sample in the above posting requires a process to be launched into an existing interactive user console session to access CUDA. Is there any other way around that? e.g. is there a way to programmatically create the interactive user session? or better will NVidia provide a new DLL/driver that will allow CUDA to work under session zero?

Thanks a lot in advance,
Edgar

There will be a robust solution for Tesla customers regarding Session 0 isolation by the end of the year.

Any update on that “robust solution” for us Tesla customers ?

yeah, there were a few last minute snags that delayed it slightly. Let me ask around tomorrow.

it got delayed again, but it’s out now!

[url=“Page Not Found | NVIDIA”]http://www.nvidia.com/object/winserver_200...96.28_whql.html[/url]

The release note doesn’t list it as a supported OS, but any known issue in using this driver on Win7 64-bit?

Thanks,

Edgar

unofficially, no

The link doesn’t work. Anywhere else I can download this driver? Thanks.

Yes, would be very helpful to know the updated link to that.

sorry, now there’s a different version so that link broke

[url=“http://www.nvidia.com/Download/index5.aspx?lang=en-us”]http://www.nvidia.com/Download/index5.aspx?lang=en-us[/url] → Tesla → 1U System → S1070 → Windows Server 2008 x64

Is there a chance a new driver for eg Vista x64/Tesla C1060 which allows a CUDA app to be run from a service (ie the link above is for Windows Server 2008 x64 & S1070) might be made available also? Am using driver 8.17.11.9703 currently but am unable to run as service with Vista x64 & Tesla C1060?

Thanks in advance.

I have a NVIDIA Quadro FX 580 and ran into the same problem, I’d like to run a service on our server which accesses CUDA functionality.

I have tried installing the Tesla driver instead because of the session 0 problem, but the installer quits with:

Reading through the release notes I had the impression that these drivers should work other NVIDIA GPUs, disabling only access to traditional 3d support like in games, which is OK.

I’d be really glad if anyone could shed some light into this matter. Thank you.

You can modify the driver’s INF file to force it to install for a non-Tesla graphics card. See my post here for details on how I made it work on a GT220.

I had trouble finding the inf file first but now it worked, thanks a lot!

We really need this for our product, but it is based on Tesla C2050 (and later C2070) cards and we need the CUDA 3.1 compatible driver (currently 257.21). Is there any plan to update the TCC driver to this version and support the new cards?
-Derek

We really need this for our product, but it is based on Tesla C2050 (and later C2070) cards and we need the CUDA 3.1 compatible driver (currently 257.21). Is there any plan to update the TCC driver to this version and support the new cards?
-Derek

TCC support for GF100 products will be out next week.

TCC support for GF100 products will be out next week.

Thanks, that is good news!

Curious: will it support Quadro cards or just Tesla?

-Derek