Jump to content

Headless Parsec Streaming on GPU's without graphics outputs!

Hunter259

This was worked on and tested on my own hardware.

Gigabyte 7Pesh2

Intel E5-2680 x2

64GB ECC DDR3 1066 MHz

Nvidia Tesla K20m


I have been working on this for a couple weeks now after receiving a Tesla K20M to help accelerate my Remote Desktop sessions. I had the idea of trying to figure out a way to use Parsec to stream into a remote desktop session.

This does not require the expensive Tesla driver set or even the Enterprise trial. It works with the freely available Tesla drivers. You may use either a second GPU or do all this remotely. How ever you chose.

 

THIS IS ONLY TESTED TO WORK ON WINDOWS SERVER 2019. It is possible this may work on other versions of Windows. No guarantees.

1. Install Nvidia Telsa drivers. Just go to the driver page and install the appropriate driver. At time of writing this (https://www.nvidia.com/Download/driverResults.aspx/140697/en-us) is the latest driver for Server 2016. It works just fine on 2019.

2.If your card has a GOM mode, make sure it is in All-On mode. Some Tesla's are locked to compute only mode (K20c for example) so make sure you do your research. Launch CMD and run this line as an admin.

    "c:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" --gom=0

This will require a reboot. Do that now. If you have multiple cards run just the application to find the BUS-ID for the card you want to change. Use the -g *YOUR BUS-ID" after the end quotation marks to select the GPU to change GOM mode.

3. Now the card will need to be put into the WDDM driver mode. Do this by using this line

    "c:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" -dm 0

If that does not work, use -fdm instead of dm. Reboot again.

4. Enable RDP if you haven't already. RDP by default in Server 2019 using the new remote desktop session manager that gives lower level driver support to RDP. No RemoteFX needed.

5. Install a VNC server of your choice. TightVNC has worked for me very well.

6. Install Parsec and enable hosting. If you are RDP'd in you may not be able to select a monitor and if you can hosting will still not function.

7. VNC into your server. This will create a virtual monitor. On my board I have an ASPEED GPU I can not turn off so the monitor is created there. It is possible that VNC may create the monitor on the Tesla if no video outputs are found.

8.Set the monitor in Parsec while in VNC and then close the VNC.

9. RDP back into the server and make sure that Parsec is still set to use the monitor you chose before.

10. Go to client and begin streaming. Everything should work. You can't use full screen apps as far as I can tell but anything running in a window should be fine.

 

Every time you reboot you will have to do the last 4 steps. You can not close or minimize RDP as that will screw with some of the hooks that it is using to create the virtual session. If anyone knows a way to close the RDP app but keep the session open without affecting the hooks that would be wonderful.

 

It is possible this work around will only work on systems with IGPU's and it is also possible that the windows graphics selector (under Settings->Display->Graphics Settings) may be all you need to make this work. My ASPEED graphics support absolutely no API's well so that did not work for me.

As to why someone would do this. The Telsa K20m is $60 on eBay with the performance of somewhere from a 780 to a 780ti. Overclocking is locked on this card by a VBIOS flash should allow you to clock the card at 780 clock speeds fairly easily. Bonus as you get 2GB more vram over most 780's. 780's are mostly >$100 on the second hand market. You also gain ECC support although this will take away some of your vram (something like 512MB).

 

There is a possibility that if you do use a card with graphics outputs that skipping to the VNC step and seeing if the virtual monitor is connected to the GPU would be enough. No RDP required. Obviously swap out the Telsa drivers and settings when using other cards such as mining GPU's.

 

 

Main Gaming PC - i9 10850k @ 5GHz - EVGA XC Ultra 2080ti with Heatkiller 4 - Asrock Z490 Taichi - Corsair H115i - 32GB GSkill Ripjaws V 3600 CL16 OC'd to 3733 - HX850i - Samsung NVME 256GB SSD - Samsung 3.2TB PCIe 8x Enterprise NVMe - Toshiba 3TB 7200RPM HD - Lian Li Air

 

Proxmox Server - i7 8700k @ 4.5Ghz - 32GB EVGA 3000 CL15 OC'd to 3200 - Asus Strix Z370-E Gaming - Oracle F80 800GB Enterprise SSD, LSI SAS running 3 4TB and 2 6TB (Both Raid Z0), Samsung 840Pro 120GB - Phanteks Enthoo Pro

 

Super Server - i9 7980Xe @ 4.5GHz - 64GB 3200MHz Cl16 - Asrock X299 Professional - Nvidia Telsa K20 -Sandisk 512GB Enterprise SATA SSD, 128GB Seagate SATA SSD, 1.5TB WD Green (Over 9 years of power on time) - Phanteks Enthoo Pro 2

 

Laptop - 2019 Macbook Pro 16" - i7 - 16GB - 512GB - 5500M 8GB - Thermal Pads and Graphite Tape modded

 

Smart Phones - iPhone X - 64GB, AT&T, iOS 13.3 iPhone 6 : 16gb, AT&T, iOS 12 iPhone 4 : 16gb, AT&T Go Phone, iOS 7.1.1 Jailbroken. iPhone 3G : 8gb, AT&T Go Phone, iOS 4.2.1 Jailbroken.

 

Link to comment
Share on other sites

Link to post
Share on other sites

  • 1 year later...

Hello, 

 

I am also trying to get this to work with no luck. I have a K20Xm are you aware of anything that would prevent this method from working on this card?

 

Kind regards,

Jonathan

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×