gpt4 book ai didi

python - 为什么 GPU 上的乘法比 CPU 慢?

转载 作者:行者123 更新时间:2023-12-05 09:37:09 34 4
gpt4 key购买 nike

这是我的代码(模拟前馈神经网络):

import torch
import time

print(torch.cuda.is_available()) # True
device = torch.device('cuda:0' )

a = torch.tensor([1,2,3,4,5,6]).float().reshape(-1,1)
w1 = torch.rand(120,6)
w2 = torch.rand(1,120)
b1 = torch.rand(120,1)
b2 = torch.rand(1,1).reshape(1,1)

start = time.time()
for _ in range(100000):
ans = torch.mm(w2, torch.mm(w1,a)+b1)+b2
end = time.time()
print(end-start) # 1.2725720405578613 seconds

a = a.to(device)
w1 = w1.to(device)
w2 = w2.to(device)
b1 = b1.to(device)
b2 = b2.to(device)

start = time.time()
for _ in range(100000):
ans = torch.mm(w2, torch.mm(w1,a)+b1)+b2
end = time.time()
print(end-start) # 5.6569812297821045 seconds

我想知道我是不是做错了或者是什么原因,我如何更改我的代码以显示 GPU IS 在矩阵乘法上比 CPU 更快?

最佳答案

原因可能有很多:

  1. 您的模型很简单。
  2. 对于 GPU 计算,存在与 GPU 内存之间的内存传输成本
  3. 您的计算是在小数据批处理上进行的,可能对于更大的数据样本,您应该会在 GPU 上看到比 CPU 更好的性能
  4. 我们不应该忘记缓存,你一遍又一遍地计算相同的操作,也许每次运行都生成随机的 a 张量会更好

这是 pytorch 论坛上的一个帖子:https://discuss.pytorch.org/t/cpu-faster-than-gpu/25343

您还应该使用更好的分析器,如本帖中所述:https://discuss.pytorch.org/t/how-to-measure-time-in-pytorch/26964

关于python - 为什么 GPU 上的乘法比 CPU 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64556682/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com