pytorch入门(四):gpu 比 cpu 快吗?

gpu 比 cpu 快吗?


  早期的计算机是顺序执行程序的,每次执行一个程序中的一个函数。为了提高机器的利用率,允许机器同时执行多个程序或者多个函数,前者称为多进程,后者称为多线程,常采用基于任务的并行处理方式。gpu是一种基于数据的并行处理方式,它将数据分解为多个部分,在多个计算单元中分别计算。在pytorch中,只需要说明数据的位置即可。
  一般来说,用cpu训练模型花费的时间比用gpu的用时要多出几十倍,但并非总是如此。下列代码分别对10×10、100×100、1000×1000元素的数组做加法运算,对比分别在cpu和gpu上完成运算的用时。由结果可见,对于小的数组,gpu没有什么优势,而对于大的数组,则优势很明显。

import torch
import time

for n in [10,100,1000]:
    ###CPU
    start_time = time.time()
    a = torch.ones(n,n)
    for _ in range(10000):
        a += 1
    elapsed_time = time.time() - start_time
    print('CPU time = ',elapsed_time)
    
    ###GPU
    start_time = time.time()
    b = torch.ones(n,n).cuda()
    for _ in range(10000):
        b += 1
    elapsed_time = time.time() - start_time
    print('GPU time = ',elapsed_time)
# end for

结果

CPU time =  0.04978775978088379
GPU time =  0.3040804862976074
CPU time =  0.16215920448303223
GPU time =  0.2978651523590088
CPU time =  4.651455640792847
GPU time =  0.5731358528137207

【上一个坑:环境的陷阱】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值