Torch线性模型GPU前向传递速度比CPU慢4倍

我正在使用torch7在AWS GPU实例之一上工作。 下面的代码对线性模型的简单前向传递进行基准测试。 GPU执行似乎比CPU慢大约4倍。我做错了什么?

require 'torch';
require 'nn';

cmd = torch.CmdLine()
cmd:option("-gpu", 0) -- gpu/cpu
cmd:option("-n_in", 100)
cmd:option("-n_out", 100)
cmd:option("-n_iter", 1000)

params = cmd:parse(arg)
A = torch.Tensor():randn(params.n_in);
model = nn.Sequential():add(nn.Linear(params.n_in, params.n_out))

if params.gpu>0 then
    require 'cutorch';
    require 'cudnn';
    A = A:cuda()
    model = model:cuda()
end

timer = torch.Timer()

for i=1,params.n_iter do
    A2 = model:forward(A)
end
print("平均时间:" .. timer:time().real/params.n_iter)
点赞
用户1957265
用户1957265

你需要足够大的网络来充分利用 GPU。对于小网络(<500 x 500),包括 GPU 核心启动、通过 PCI-E 的数据传输等在内的开销将占据训练时间的很大一部分。在这种情况下,您可能需要使用 CPU。

2016-06-12 14:05:24