sklearn支持gpu_为什么sklearn在CPU上比在GPU上更快?

在比较Python的ano(CPU)、theano(GPU)和scikit-learn(CPU)处理时间时,发现scikit-learn在计算欧几里得距离矩阵时速度比theano(GPU)更快。这可能由于GPU的传输时间约占131.639ms,而总差距约700ms。问题在于,尽管考虑了传输时间,scikit-learn仍然显著更快,可能是由于它优化了计算方式,仅处理上三角矩阵。
摘要由CSDN通过智能技术生成

我比较了使用Python的ano(CPU)、theano(GPU)和scikitlearn(CPU)的处理时间。

但是,我得到了奇怪的结果。

看我画的图。在

处理时间比较:

cLlDj.png

您可以看到scikit learn的结果,它比atano(GPU)更快。

我检查它的运行时间的程序是从一个有n*40个元素的矩阵计算欧几里德距离矩阵。在

这是代码的一部分。在points = T.fmatrix("points")

edm = T.zeros_like(points)

def get_point_to_points_euclidean_distances(point_id):

euclideans = (T.sqrt((T.sqr(points- points[point_id, : ])).sum(axis=1)))

return euclideans

def get_EDM_CPU(points):

EDM = np.zeros((points.shape[0], points.shape[0])).astype(np.float32)

for row in range(points.shape[0]):

EDM[row, :] = np.sqrt(np.sum((points - points[row, :])**2, axis=1))

return EDM

def get_sk(points):

EDM = sk.pairwise_distances(a, metric='l2')<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GPU(图形处理器)是一种专门用于进行图形处理和并行计算的硬件设备,而CPU(中央处理器)负责控制和执行计算机的各种指令和运算。通常情况下,GPU是独立于CPU的,因为它们有不同的功能。 然而,在一些需要大规模并行计算的应用中,如科学计算、人工智能和深度学习等领域,CPU的计算能力并不能满足需求。为了提高计算速度和效率,可以将GPU安装在CPU服务器上。 一般而言,将GPU安装在CPU服务器上需要满足以下几个条件: 首先,CPU服务器的主板需要提供PCIe(速外部设备接口)插槽,因为大多数GPU都需要通过PCIe进行连接。 其次,服务器的电源和散热系统需要足够强大,因为GPU通常比较耗电且产生大量热量。 此外,操作系统和相应的驱动程序也需要支持GPU的安装和使用。 最后,软件开发人员还需在应用程序中进行相应的优化,以充分利用GPU的并行计算能力。 通过将GPU安装在CPU服务器上,可以充分发挥GPU的计算潜力,大幅提升计算速度和效率。特别是在大数据处理、模拟和算法训练等领域,GPU可以显著提高计算过程中的吞吐量。 总之,GPU能够被安装在CPU服务器上,以提供强大的并行计算能力,但需要具备相应的硬件、软件和优化条件。这种配置在需要大规模并行计算的场景中非常常见,为提高计算能力带来了显著的益处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值