How to differentiate programatically mobile GPU from desktop GPU with same model name

Hi,

is there a way to determine programmatically, e.g., using nvml.dll API, what actual GPU model (mobile vs desktop) is installed on a PC? I’m running a software using CUDA toolkit on Windows, and it is intended to be run on both laptop and desktop PCs. I have a requirement to have GPU onboard with CUDA Capability Index to be equal to 7.5. Looking at the CUDA GPUs page (CUDA GPUs - Compute Capability | NVIDIA Developer) I can see the following GPUs support CUDA CI 7.5:

Desktop GPUs: T1000, T600, T400, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Quadro RTX 4000
Mobile GPUs: RTX 5000, RTX 4000, RTX 3000, T2000, T1200, T1000, T600, T500

Note that some items, like T1000 entry, show up here twice: on mobile GPUs list and on desktop GPUs list. I’d like to determine actual GPU model, in order to provide relevant NVIDIA driver. When I’m calling mvml.dll nvmlDeviceGetName API, it returns just Quadro T1000 value. Is there an API to determine if this is mobile or desktop flavor of the GPU model?

Thanks in advance!