Skip to content

Product docsGPU servers

Windows and a graphical desktop on GPU and Arm64 servers

Run Windows or a Linux desktop on a GPU or Arm64 server: connect over Remote Desktop, let sessions use the GPU and set up Xfce with xrdp on Ubuntu or Debian.

  • Beginner
  • 20 min read
  • Updated

This guide is not available in your language yet, so it is shown in English.

On this page
  1. Before you start
  2. Windows: connect and use the GPU
  3. Step 1: Connect over Remote Desktop
  4. Step 2: Check the GPU (GPU servers)
  5. Step 3: Let Remote Desktop sessions use the GPU
  6. Windows on Arm64 servers
  7. Linux: a desktop with Xfce and xrdp
  8. Step 1: Install the desktop and xrdp
  9. Step 2: Create a desktop user
  10. Step 3: Keep port 3389 private
  11. Step 4: Connect
  12. Troubleshooting
  13. Next steps

GPU VPS, GPU VDS, GPU dedicated servers and Arm64 VPS and VDS run Linux or Windows, and a Linux server can also run a graphical desktop. This guide shows how to connect to a Windows server, let Remote Desktop sessions use the GPU, and set up a Linux desktop that you open with the same Remote Desktop app.

Before you start

  • The operating system you want: choose it in the order form, or reinstall the server with another image from the client area. Reinstalling erases the server's disk, so take a backup first.
  • Your server's IP address and login details from the welcome email.
  • A Remote Desktop app: Remote Desktop Connection (mstsc) on Windows, Windows App on macOS, or an RDP client such as Remmina on Linux.

Windows: connect and use the GPU

Step 1: Connect over Remote Desktop

Connect with your Remote Desktop app to the server's IP address and sign in as Administrator: first steps on a Windows server over RDP.

Step 2: Check the GPU (GPU servers)

Open Task Manager › Performance. The GPU appears in the list with its name. If it does not, or Device Manager shows it with a warning sign, follow GPU servers: getting started for the driver your GPU type needs.

Step 3: Let Remote Desktop sessions use the GPU

Remote Desktop sessions render on the CPU until you enable the GPU for them. Open the Local Group Policy Editor (gpedit.msc) and go to Computer Configuration › Administrative Templates › Windows Components › Remote Desktop Services › Remote Desktop Session Host › Remote Session Environment. Set these policies to Enabled:

PolicyWhat it does
Use hardware graphics adapters for all Remote Desktop Services sessionsSessions render on the GPU instead of the CPU
Prioritize H.264/AVC 444 graphics mode for Remote Desktop ConnectionsSharper image for text and fine detail
Configure H.264/AVC hardware encoding for Remote Desktop ConnectionsThe GPU encodes the picture sent to you

Apply the policies, then sign out and connect again:

PowerShell
gpupdate /force

Verify: start a 3D or video program in the session. Task Manager › Performance › GPU shows activity.

Windows on Arm64 servers

Windows on Arm runs programs built for Arm64 natively. Many x64 and x86 programs also run, through emulation built into Windows, but more slowly. Drivers cannot be emulated: a driver must be built for Arm64. Choose the Arm64 download of a program where the vendor offers one.

Linux: a desktop with Xfce and xrdp

Xfce is a light desktop and xrdp lets you open it with any Remote Desktop app. The steps are the same on x86 and Arm64, on Ubuntu and Debian.

Step 1: Install the desktop and xrdp

Bash
sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp
sudo adduser xrdp ssl-cert
sudo systemctl enable --now xrdp

Step 2: Create a desktop user

Sign in to the desktop with a normal user, not root. Create one and start Xfce for it:

Bash
sudo adduser desk
echo xfce4-session | sudo tee /home/desk/.xsession
sudo chown desk:desk /home/desk/.xsession

Step 3: Keep port 3389 private

Do not leave the Remote Desktop port open to the whole internet. Choose one way:

Allow only your IP address

With the ufw firewall, allow port 3389 only from your own address (replace 203.0.113.10):

Bash
sudo ufw allow from 203.0.113.10 to any port 3389 proto tcp

Use an SSH tunnel

Leave port 3389 closed in the firewall and forward it over SSH from your computer, then connect your Remote Desktop app to localhost:

Bash
ssh -L 3389:localhost:3389 desk@SERVER_IP

Step 4: Connect

Connect your Remote Desktop app to the server's IP address (or to localhost with the tunnel), choose the Xorg session if xrdp asks, and sign in as desk.

Verify: the Xfce desktop opens with its panel.

On a GPU server, programs that compute on the GPU, such as CUDA, ROCm or oneAPI applications, use it as usual from the desktop's terminal. The desktop itself is drawn by the CPU.

Troubleshooting

xrdp shows a black screen after login, or the session closes at once. The same user is still signed in to a local console session, or .xsession is missing. Sign out of the other session, check ~/.xsession, and read ~/.xsession-errors and /var/log/xrdp-sesman.log.

Remote Desktop cannot connect. Check the firewall rule, the IP address and the port: Remote Desktop connection problems.

The GPU is not used in a Windows session. The policies are not applied yet: run gpupdate /force, then sign out and connect again.

The GPU shows Code 43 in Device Manager. The driver does not match the GPU type: see GPU troubleshooting.

Next steps

Frequently asked questions

Which operating systems can I choose?

The images your package offers, listed in the order form and in the client area when you reinstall: Linux distributions and Windows, on GPU servers and on Arm64 servers.

Do I need a desktop on a Linux server?

Only for graphical programs. AI models, containers and command-line tools run without one, and a desktop uses memory and CPU of its own.

Does a remote desktop use the GPU?

On Windows, after you enable the GPU policies in this guide. On Linux, xrdp draws the desktop with the CPU, while programs that compute on the GPU use it as usual.

Do x64 programs run on Windows on Arm?

Many do, through the emulation built into Windows on Arm. Programs built for Arm64 run natively and faster, and drivers must always be built for Arm64.

Générer un mot de passe

Please confirm