繁体   English   中英

与具有theano的CPU相比,具有Theano的GPU给出的结果较差

[英]GPU with Theano giving poor result compared to CPU with theano

我正在做本教程: http : //deeplearning.net/software/theano/tutorial/using_gpu.html#exercise

并在此处给出了该教程的解决方案: http : //deeplearning.net/software/theano/_downloads/using_gpu_solution_1.py

但是我的问题是我何时运行代码

使用GPU:

THEANO_FLAGS=mode=FAST_RUN,device=gpu time python using_gpu_solution_1.py

我得到以下输出:

Using gpu device 0: Tesla C2050 / C2070
Used the gpu
13.37user 3.69system 0:16.49elapsed 103%CPU (0avgtext+0avgdata 617376maxresident)k
0inputs+16outputs (0major+75442minor)pagefaults 0swaps

和CPU:

THEANO_FLAGS=mode=FAST_RUN,device=cpu time python using_gpu_solution_1.py

我得到以下输出:

Used the cpu
6.85user 14.50system 0:04.43elapsed 481%CPU (0avgtext+0avgdata 241120maxresident)k
0inputs+16outputs (0major+43904minor)pagefaults 0swaps

解决方案中,他们提到GPU的速度几乎提高了一倍。 但是与GPU相比,我使用GPU的时间越来越长。

代码是否在CPU的多个内核上运行,并且相对于GPU有了改进?

谁能告诉我我错了吗? 我唯一能看到的就是使用GPU改善了系统时间。 这就是加速吗? 因为使用GPU的总耗时仍然更多。

存在一个问题(1)和对此的考虑(2-3):

1)您的时间不正确。 您的计时方式包括theano编译时间。 Theano编译不包含在配置文件中。 您只应该计时在Theano函数中花费的时间。 为此,请像在配置文件中一样修改Theano分析器的使用脚本。

2)这是一个玩具示例。 它执行纯随机梯度下降(SGD)。 为了从GPU获得更快的速度,我们需要将minibatch与SGD一起使用。 如果我们不这样做,GPU将没有足够的数据来并行化计算。

3)由于这只是一个小模型的玩具示例,因此速度的提高将取决于所使用的CPU和GPU。 可能是您在比原来更好的CPU上进行了计时,或者是通过并行BLAS进行了计时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM