如何使用Python查询电脑GPU的具体型号名称(如RTX 3090)
Python查询本地GPU纯型号名称实现方案
以下方案均会自动过滤GPU厂商、产品线前缀(如NVIDIA、GeForce、Radeon等),仅返回RTX 3090这类具体型号字符串,可根据自己的运行环境选择对应实现。
方案1:适配所有安装官方NVIDIA驱动的设备(无第三方Python依赖)
直接调用系统自带的nvidia-smi工具读取信息,是N卡设备最稳定、最准确的方案,不需要额外安装任何Python库:import subprocess def get_nvidia_gpu_model(): try: output = subprocess.check_output( ["nvidia-smi", "--query-gpu=name", "--format=csv,noheader"], text=True, stderr=subprocess.DEVNULL ).strip() gpu_models = [item.strip() for item in output.split("\n") if item.strip()] # 单卡返回字符串,多卡返回型号列表 return gpu_models[0] if len(gpu_models) == 1 else gpu_models except (subprocess.CalledProcessError, FileNotFoundError): return None # 调用测试 if __name__ == "__main__": print(get_nvidia_gpu_model()) # 单卡输出示例:RTX 3090注:
nvidia-smi返回的名称默认不带NVIDIA厂商前缀,不需要额外做字符串清洗。方案2:已安装PyTorch环境的通用方案
如果你本地已经配置了PyTorch深度学习环境,不需要额外调用系统命令,直接用Torch内置接口即可查询:import torch import re def get_gpu_model_via_torch(): if not torch.cuda.is_available(): return None gpu_models = [] for idx in range(torch.cuda.device_count()): raw_name = torch.cuda.get_device_name(idx) # 清洗掉厂商、产品线前缀,仅保留纯型号 pure_model = re.sub(r"^(NVIDIA|GeForce)\s*", "", raw_name).strip() gpu_models.append(pure_model) return gpu_models[0] if len(gpu_models) == 1 else gpu_models方案3:Windows系统全GPU适配方案(支持N卡/A卡/Intel核显/Arc独显,无CUDA依赖)
不需要安装显卡完整开发环境,直接调用Windows系统自带的WMI接口查询硬件信息,适配所有类型GPU:import subprocess import re def get_gpu_model_windows(): try: output = subprocess.check_output( ["wmic", "path", "win32_VideoController", "get", "name"], text=True, stderr=subprocess.DEVNULL ) gpu_models = [] for line in output.split("\n"): line = line.strip() if not line or line == "Name": continue # 清洗厂商、产品线前缀和冗余后缀 pure_model = re.sub( r"^(NVIDIA|AMD|Intel\(R\)|Intel)\s*(GeForce|Radeon|UHD|Iris|Arc)?\s*", "", line ).strip() pure_model = re.sub(r"\s*/\s*PCIe.*$", "", pure_model).strip() gpu_models.append(pure_model) return gpu_models[0] if len(gpu_models) == 1 else gpu_models except (subprocess.CalledProcessError, FileNotFoundError): return None
提示:如果设备是核显+独显双显卡配置,上述函数会返回所有识别到的GPU型号列表,按需筛选目标独显型号即可。
内容的提问来源于stack exchange,提问作者Alex Leontaridis
相关产品推荐
相关产品推荐

