脚本测试显卡的实际算力

2025-03-24 21:39:05 3点赞 10收藏 3评论

最近半年买了两张显卡玩 AI,于是想着测试一下显卡的实际算力。通过 AI 写了一个脚本测试显卡的 FP16 和 FP32 算力。结果有点出乎我意料之外:

Tesla T10 算力测试结果为:

FP16 混合算力 50-54 TFLOPS;FP32 算力 8 TFLOPS;

网上都说 Tesla T10 FP16 算力被大刀阉割了,事实上砍得并不多。

脚本测试显卡的实际算力

RTX4060 算力测试结果:

FP16 混合算力 30 TFLOPS;FP32 算力 8 TFLOPS;

网上说的 RTX4060 FP32 算力都是 15TFLOPS,但脚本测试就是只有一半,让我困惑。

脚本测试显卡的实际算力

脚本测试非常简单,保存文件为:test.py。正常安装 python、 Pytorch 和 CUDA (玩AI的人必备的系统)。然后运行脚本测试即可:

import torch import time def test_gpu_tensorcore_cuda_fp16_compute(): # 检查 CUDA 是否可用 if not torch.cuda.is_available(): print("CUDA 不可用,请检查你的环境配置。") return # 获取 CUDA 设备 device = torch.device("cuda") # 定义矩阵大小,可根据显卡性能调整 matrix_size = 4096 # 创建 FP16 随机矩阵并移到 CUDA 设备上 matrix_a = torch.randn(matrix_size, matrix_size, dtype=torch.float16, device=device) matrix_b = torch.randn(matrix_size, matrix_size, dtype=torch.float16, device=device) # 预热操作,让 CUDA 设备和 Tensor Core 达到稳定状态 for _ in range(10): _ = torch.matmul(matrix_a, matrix_b) # 同步 CUDA 设备,确保预热操作完成 torch.cuda.synchronize() # 记录开始时间 start_time = time.time() # 执行多次矩阵乘法以获得更准确的计时 num_iterations = 100 for _ in range(num_iterations): _ = torch.matmul(matrix_a, matrix_b) # 同步 CUDA 设备,确保所有计算完成 torch.cuda.synchronize() # 记录结束时间 end_time = time.time() # 计算总耗时 elapsed_time = end_time - start_time # 计算每次矩阵乘法的浮点运算次数(FLOPs) flops_per_iteration = 2 * matrix_size ** 3 # 计算总浮点运算次数 total_flops = flops_per_iteration * num_iterations # 计算算力(TFLOPS) tflops = total_flops / (elapsed_time * 1e12) print(f"显卡测试的混合 FP16 算力: {tflops} TFLOPS") return tflops if __name__ == "__main__": test_gpu_tensorcore_cuda_fp16_compute() def verify_gpu_fp32_tflops(matrix_size=4096, num_runs=100): # 创建两个随机矩阵,数据类型为 torch.float32 a = torch.randn(matrix_size, matrix_size, dtype=torch.float32).cuda() b = torch.randn(matrix_size, matrix_size, dtype=torch.float32).cuda() # 进行热身运算,让 GPU 达到稳定状态 for _ in range(5): _ = torch.matmul(a, b) # 记录开始时间 start_time = time.time() # 进行多次矩阵乘法运算 for _ in range(num_runs): c = torch.matmul(a, b) # 等待所有运算完成 torch.cuda.synchronize() # 记录结束时间 end_time = time.time() # 计算总时间 total_time = end_time - start_time # 计算每次矩阵乘法的浮点运算次数(FLOPs) flops_per_matmul = 2 * matrix_size ** 3 # 计算总的浮点运算次数 total_flops = flops_per_matmul * num_runs # 计算 TFLOPS tflops = total_flops / (total_time * 1e12) return tflops if __name__ == "__main__": tflops = verify_gpu_fp32_tflops() print(f"显卡测试的 FP32 算力: {tflops} TFLOPS")

欢迎大家分享自己的测试结果,如有问题也欢迎指正!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
3评论

  • 精彩
  • 最新
  • root@0a16a5676363:/var/lib/jenkins/workspace# python test.py
    显卡测试的混合 FP16 算力: 123.27652439254078 TFLOPS
    显卡测试的 FP32 算力: 32.81808107918341 TFLOPS

    校验提示文案

    提交
  • 大家猜猜我是什么显卡

    校验提示文案

    提交
  • 谢谢分享!

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
10
扫一下,分享更方便,购买更轻松