GPU计算

文章目录

  • GPU计算
    • 1. GPU和CPU的区别
    • 2. GPU的主要参数解读
    • 3. 如何在pytorch中使用GPU
    • 4. 市面上主流GPU的选择

GPU计算

1. GPU和CPU的区别

设计目标不同,CPU基于低延时,GPU基于高吞吐。

  • CPU:处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理
  • GPU:处理类型高度统一的、相互无依赖的大规模数据,不需要被打断的纯净的计算环境

什么类型的程序适合在GPU上运行?

  • 计算密集型
  • 易于并行的程序

2. GPU的主要参数解读

  1. 显存大小:当模型越大或者训练时的批量越大时,所需要的显存就越多。
  2. FLOPs:每秒浮点运算次数(亦称每秒峰值速度)是每秒所运行的浮点运算次数(英语:Floating-point operations per second;缩写:FLOPS)的简称,被用来估算电脑性能,尤其是在使用到大量浮点运算的科学计算领域中。
  3. 显存带宽:显存在一个时钟周期内所能传送数据的位数;位数越大则瞬间所能传输的数据量越大。

3. 如何在pytorch中使用GPU

  1. 模型转为cuda
  2. 数据转为cuda
  3. 输出数据去cuda,转为numpy

GPU计算_第1张图片

在这里插入图片描述

如果有可用的数个GPU:可以设置dev="cuda:0"或dev="cuda:1"。需要注意的是,如果使用多卡进行训练和预测,可能会出现部分计算结果丢失的情况。在有GPU条件下,可以尝试“训练用单卡,预测用多卡”、“训练用多卡、预测用单卡”等几种情况下的结果。

4. 市面上主流GPU的选择

参考:https://www.bybusa.com/gpu-rank

https://zhuanlan.zhihu.com/p/61411536

http://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/

使用主机机箱配置或者(云)服务器,不要使用笔记本。

入门免费:Colab,Kaggle(RTX 2070)

针对不同深度学习架构,GPU参数的选择优先级是不一样的,总体来说分两条路线:

卷积网络和Transformer:张量核心>FLOPs(每秒浮点运算次数)>显存带宽>16位浮点计算能力

循环神经网络:显存带宽>16位浮点计算能力>张量核心>FLOPs

欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。

你可能感兴趣的:(深度学习,软件工具,深度学习,pytorch)