火炬循环似乎比它应该慢得多

时间:2015-09-28 23:42:16

标签: lua deep-learning luajit torch

我有以下代码

for i=1,A do
    for j=1,B do
        self.gradInput:narrow(1, self.C[i][j], 1):add(gradOutput[2][i][j])
    end
end

在火炬的自定义模块中。

对于A = 18K,B = 30的值,此循环需要~4 s(使用torch.Timer测量),这对我来说似乎非常高。

对于上下文,C是大小为(A,B)的FloatTensor,而(2,A,B)为gradOutput。处理器是AMD Opteron 4386,有16个内核,每个内核的缓存大小为2MB。

所以,在我看来,C,gradOutput,gradInput应该已经被缓存,所以对于这样一个短循环的4s对我来说似乎非常高。

任何人都有任何想法为什么它如此缓慢以及是否/如何提高性能?

0 个答案:

没有答案