深度学习与硬件——CPU、GPU和TPU

参考链接

  1. https://time.geekbang.org/course/detail/100046401-206512

为什么关注硬件

  1. 有时候结果出现问题不一定是算法的问题,而可能是硬件的问题。但关注硬件不等于所有都要重写。

  2. 加速训练。通过选择不同的硬件配置,可以提高训练速度。

  3. 避免部署出现问题。

深度学习与CPU

  1. 一般不用CPU训练深度学习模型。

  2. 很多if…else出现时,CPU会比GPU快。

  3. 如果需要加速,可以通过Cython访问C++。

  4. 对于大部分硬件(GPU、TPU、FPGA),CPU会负责数据的读写。在进行训练时,有时为了加速需要选择更多核的机器。

  5. 避免Cache Miss(Cache从内存中取的数据如果不是register想要的,那么又得重新与内存交换数据,这种现象叫Cache Miss。)

深度学习与GPU

  1. 显存独立于内存,内存和显存的读取可能会成为问题。GPU部署经常被内存与显存之间的带宽影响,可以增加CPU的核。

  2. 对于显存的处理,multi-stream processer并不如CPU一样强大。

  3. GPU训练效率和显存利用率可以被 DeepSpeed 显著提升。

  4. 很少出现 GPU 多线程训练。

  5. GPU 训练有时可能会被一些其他因素影响,如CPU,GPU 之间沟通速度(多
    GPU或多节点)。

  6. GPU 可处理动态的网络。

  7. GPU 部署的最大问题:显存污染。(GPU发生运算时脱离CPU平台,显存只在固定的时间与内存做交互。如果多个运算(比如部署了多个微服务)想改变同一块显存的内容时,不会想CPU的内存一样产生警告。那么在另一个运算读取该部分内容时,已经发生了改变,因此产生错误的结果。)往往会在一台GPU上只对应一个serving节点。

  8. 部署时需要对参数做详细调整,最重要参数为 Batch Size。

深度学习与TPU

  1. 用于训练神经网络的 TPU 只能通过GCP获得。

  2. TPU本质上来说是矩阵/向量相乘的机器,构造远比GPU简单,所以TPU十分便宜且很容易预测其表现。

  3. TPU 很擅长基于 Transformer 架构的训练和预测。

  4. TPU 不能处理动态网络

  5. 原生Tensorflow对TPU支持最好,PyTorch目前通过XLA的引进也部分支持TPU。

  6. TPU的主要运算瓶颈在于IO支持。

  7. 建议采用TPU V3多线程的方式,这种方式性价比最高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值