transformers 混合精度一定需要 Ampere 架构的 gpu 吗?

查看 58|回复 2
作者:buaacss   
看 transformers 的源码,判断能否使用 bf16 混合精度的时候需要 Ampere 架构的 GPU ,不太明白是为什么。
改了下代码试试 2080ti 能不能跑出来,如果可以的话再给大家汇报。
如果有人知道是什么原因以及效果如何也请留言告知,不胜感激。

ampere, GPU, 精度, 混合

ShadowPower   
用 fp16 也是混合精度
Ampere 架构才支持 bf16 ,更早的显卡硬件不支持,跑的时候实际上转回 fp32 ,更慢了
Turing 架构有 Tensor Core ,可以跑 fp16 和 int8 ,相比 fp32 还快很多
buaacss
OP
  
@ShadowPower 我使用的是 2080ti ,是 Turing 架构的。从我目前的测试上看,使用 fp16 会溢出,使用 bf16 按您的说法是会转回 fp32 ,会更慢。但是我确实看到加速了不少而且显存也下降了。
使用单精度,我 bs 最多只能设置到 8 ,需要大约 32 个小时训练
使用 bf16 ,我 bs 可以设置到 16 ,需要大约 16 个小时完成训练
使用 fp16 ,会直接溢出
您需要登录后才可以回帖 登录 | 立即注册

返回顶部