45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
|
|
import torch
|
|||
|
|
|
|||
|
|
def test_cuda_availability():
|
|||
|
|
"""全面测试CUDA可用性"""
|
|||
|
|
|
|||
|
|
print("="*50)
|
|||
|
|
print("PyTorch CUDA 测试")
|
|||
|
|
print("="*50)
|
|||
|
|
|
|||
|
|
# 基本信息
|
|||
|
|
print(f"PyTorch版本: {torch.__version__}")
|
|||
|
|
print(f"CUDA可用: {torch.cuda.is_available()}")
|
|||
|
|
|
|||
|
|
if not torch.cuda.is_available():
|
|||
|
|
print("CUDA不可用,可能原因:")
|
|||
|
|
print("1. 未安装CUDA驱动")
|
|||
|
|
print("2. 安装的是CPU版本的PyTorch")
|
|||
|
|
print("3. CUDA版本与PyTorch不匹配")
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
# 设备信息
|
|||
|
|
device_count = torch.cuda.device_count()
|
|||
|
|
print(f"发现 {device_count} 个CUDA设备")
|
|||
|
|
|
|||
|
|
for i in range(device_count):
|
|||
|
|
print(f"\n设备 {i}:")
|
|||
|
|
print(f" 名称: {torch.cuda.get_device_name(i)}")
|
|||
|
|
print(f" 内存总量: {torch.cuda.get_device_properties(i).total_memory / 1e9:.2f} GB")
|
|||
|
|
print(f" 计算能力: {torch.cuda.get_device_properties(i).major}.{torch.cuda.get_device_properties(i).minor}")
|
|||
|
|
|
|||
|
|
# 简单张量测试
|
|||
|
|
print("\n运行CUDA测试...")
|
|||
|
|
try:
|
|||
|
|
x = torch.randn(3, 3).cuda()
|
|||
|
|
y = torch.randn(3, 3).cuda()
|
|||
|
|
z = x + y
|
|||
|
|
print("CUDA计算测试: 成功!")
|
|||
|
|
print(f"设备上的张量形状: {z.shape}")
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"CUDA计算测试失败: {e}")
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
test_cuda_availability()
|