python运行速度和cpu还是gpu有关_为什么这个Python脚本在CPU中比在GPU中运行得更快?...

我正在使用Python的库somoclu来使用Python训练自组织映射。该库允许用户在CPU(Intel Core i7-8700)或GPU(GeForce GTX 1080 Ti)上执行培训。在

我注意到CPU运行脚本的速度比GPU快,所以我运行了一次扫描,改变了数据点的数量和映射的大小,以查看GPU是否在某个时刻优于CPU。这是剧本:import numpy as np

import somoclu

import time

m = 3 # Number of dimensions

points = [5000, 30000, 80000, 150000, 300000] # Number of datapoints

iterMax = 200 # Max number of iterations

mapSize = [4, 32, 64, 128] # Dimensions of SOM

np.random.seed(0)

#%% SOM

for n in points:

for size in mapSize:

y = np.random.rand(n,m) # Input data

# With CPU

t = time.clock() # Start time

som = somoclu.Somoclu(size,

size,

compactsupport = False,

kerneltype = 0)

som.train(y.astype(np.float32), epochs = iterMax)

elapsedTime = time.clock() - t

# With GPU

t = time.clock() # Start time

som = somoclu.Somoclu(size,

size,

compactsupport = False,

kerneltype = 1)

som.train(y.astype(np.float32), epochs = iterMax)

elapsedTime = time.clock() - t

我用CSV保存了《纽约时报》,这是我得到的:

^{pr2}$

如您所见,CPU在每种情况下都优于GPU(最重要的是,在运行包含150000个数据点和64x64映射的脚本时,GPU版本崩溃)。这怎么可能?那么使用GPU来训练SOM有什么好处呢?在

编辑:

我在R中尝试了相同的库,在这种语言中GPU的性能优于CPU。显然这只是一个Python问题,但我不是编程专家,无法了解发生了什么。我相信运行的内核是一样的,所以只是接口改变了。让我们看看这是否有助于某人找到Python中CPU比GPU快的原因。在

你可能感兴趣的:(python运行速度和cpu还是gpu有关_为什么这个Python脚本在CPU中比在GPU中运行得更快?...)