How to force/lock SM and Memory clocks on RTX 5090 (Headless Linux)

Hello everyone,

I’m trying to lock the GPU clocks on my ZOTAC RTX 5090 AMP, which is running in a headless Linux server, but I’m having trouble.

My Goal: I need to force the SM (Streaming Multiprocessor) clock and the memory clock to specific, fixed frequencies for a compute-intensive workload to get consistent performance.

System Details:

  • GPU: ZOTAC RTX 5090 AMP

  • OS: Ubuntu 24.04

  • NVIDIA Driver Version: 580.95.05

  • Setup: This is a headless server with no X server running.

What I’ve Tried: I attempted to use nvidia-smi to set the application clock limits. I tried using:

nvidia-smi -lgc [target_sm_clock] and nvidia-smi -lmc [target_memory_clock]

However, these commands failed or did not lock the clocks as expected. The GPU still seems to be managing its power states and frequencies automatically. I’ve also ensured that nvidia-persistenced is running.

My Question: Is there a different or more effective method to force the GPU to use a specific SM frequency and memory frequency on a headless system?

For example, are there nvidia-settings commands that work without an X server, or any specific kernel module parameters I need to set?

Any help or guidance would be greatly appreciated.

Thank you!