nvidia官网查看显卡算力
https://developer.nvidia.com/cuda-gpus#compute
查看支持精度,通过算力找到对应
https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html#hardware-precision-matrix
检查 CUDA 是否可用:使用 torch.cuda.is_available() 检查是否有可用的 CUDA 设备。
获取 CUDA 设备名称:使用 torch.cuda.get_device_name(device) 获取 CUDA 设备的名称。
获取 CUDA 设备能力:使用 torch.cuda.get_device_capability(device) 获取 CUDA 设备的能力值。这些值通常表示为 (major, minor) 对,其中 major 表示主要版本号,而 minor 表示次要版本号。
根据能力值判断支持的精度:
如果 major 大于等于 5,则支持半精度(FP16)。
如果 major 大于等于 7,则支持张量核心(TF32)、混合精度(FP16 + FP32)、全精度(FP32)和双精度(FP64)
import torch
# 检查是否有可用的 CUDA 设备
if torch.cuda.is_available():
# 获取第一个可用的 CUDA 设备
device = torch.device("cuda:0")
# 获取 CUDA 设备的一些基本信息
print("CUDA Device Name:", torch.cuda.get_device_name(device))
print("CUDA Device Capability:", torch.cuda.get_device_capability(device))
# CUDA 设备的能力值可以用来确定支持的精度
major, minor = torch.cuda.get_device_capability(device)
# 根据 CUDA 设备的能力值判断支持的精度
if major >= 5:
print("Supports half precision (FP16)")
if major >= 7:
print("Supports tensor cores (TF32)")
if major >= 7:
print("Supports mixed precision (FP16 + FP32)")
if major >= 7:
print("Supports full precision (FP32)")
if major >= 7:
print("Supports double precision (FP64)")
else:
print("No CUDA-capable device found.")
运行结果
CUDA Device Name: NVIDIA GeForce RTX 4060 Laptop GPU
CUDA Device Capability: (8, 9)
Supports half precision (FP16)
Supports tensor cores (TF32)
Supports mixed precision (FP16 + FP32)
Supports full precision (FP32)
Supports double precision (FP64)