Python 与使用Theano的CPU相比,使用Theano的GPU的效果较差
我正在做这个教程: 本教程的解决方案如下所示: 但我的问题是当我运行代码时 使用GPU:Python 与使用Theano的CPU相比,使用Theano的GPU的效果较差,python,cuda,gpu,theano,Python,Cuda,Gpu,Theano,我正在做这个教程: 本教程的解决方案如下所示: 但我的问题是当我运行代码时 使用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 61
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
Used the cpu
6.85user 14.50system 0:04.43elapsed 481%CPU (0avgtext+0avgdata 241120maxresident)k
0inputs+16outputs (0major+43904minor)pagefaults 0swaps
使用CPU时:
THEANO_FLAGS=mode=FAST_RUN,device=cpu 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
Used the cpu
6.85user 14.50system 0:04.43elapsed 481%CPU (0avgtext+0avgdata 241120maxresident)k
0inputs+16outputs (0major+43904minor)pagefaults 0swaps
在这篇文章中,他们提到GPU的速度几乎提高了一倍。
但我用GPU得到的时间比CPU多
是因为代码在CPU的多核上运行,并且比GPU有了改进吗
谁能告诉我我做错了什么?
我唯一能看到的是使用GPU在系统时间上的改进。
这就是他们所说的加速吗?由于GPU的总运行时间更长。有一个问题(1)和考虑事项(2-3):
1) 你没有正确地计时。时间的方式包括theano编译时间。Theano编译不包括在配置文件中。您应该只计算花费在函数内部的时间。为此,请修改配置文件中使用Theano profiler的脚本
2) 这是一个玩具的例子。它做纯随机梯度下降(SGD)。为了从GPU获得良好的速度,我们需要使用带有SGD的minibatch。如果我们不这样做,GPU就没有足够的数据来并行计算
3) 由于这是一个只有一个小模型的玩具示例,因此速度会因所使用的CPU和GPU而发生很大变化。这可能是因为您使用了比原来更好的CPU进行计时,或者您使用了并行BLAS进行计时。关于这一点,有一个问题(1)和考虑(2-3):
1) 你没有正确地计时。时间的方式包括theano编译时间。Theano编译不包括在配置文件中。您应该只计算花费在函数内部的时间。为此,请修改配置文件中使用Theano profiler的脚本
2) 这是一个玩具的例子。它做纯随机梯度下降(SGD)。为了从GPU获得良好的速度,我们需要使用带有SGD的minibatch。如果我们不这样做,GPU就没有足够的数据来并行计算
3) 由于这是一个只有一个小模型的玩具示例,因此速度会因所使用的CPU和GPU而发生很大变化。这可能是因为您使用了比原来更好的CPU进行计时,或者您使用了并行BLAS进行计时。关于这一点,有一个问题(1)和考虑(2-3):
1) 你没有正确地计时。时间的方式包括theano编译时间。Theano编译不包括在配置文件中。您应该只计算花费在函数内部的时间。为此,请修改配置文件中使用Theano profiler的脚本
2) 这是一个玩具的例子。它做纯随机梯度下降(SGD)。为了从GPU获得良好的速度,我们需要使用带有SGD的minibatch。如果我们不这样做,GPU就没有足够的数据来并行计算
3) 由于这是一个只有一个小模型的玩具示例,因此速度会因所使用的CPU和GPU而发生很大变化。这可能是因为您使用了比原来更好的CPU进行计时,或者您使用了并行BLAS进行计时。关于这一点,有一个问题(1)和考虑(2-3):
1) 你没有正确地计时。时间的方式包括theano编译时间。Theano编译不包括在配置文件中。您应该只计算花费在函数内部的时间。为此,请修改配置文件中使用Theano profiler的脚本
2) 这是一个玩具的例子。它做纯随机梯度下降(SGD)。为了从GPU获得良好的速度,我们需要使用带有SGD的minibatch。如果我们不这样做,GPU就没有足够的数据来并行计算
3) 由于这是一个只有一个小模型的玩具示例,因此速度会因所使用的CPU和GPU而发生很大变化。这可能是因为你在一个比原来更好的CPU上进行计时,或者你是用一个并行BLAS进行计时的