混合精度是指在训练期间在模型中同时使用16位和32位浮点类型,以使其运行更快并使用更少的内存。通过将模型的某些部分保持在32位类型中以保持数值稳定性,模型将具有更短的步长时间,并且在评估指标(如准确性)方面同样可以训练。可以在现代GPU和TPU上将性能提高。
tensorflow自带了混合精度训练,但是要求版本在2.1以上。
而混合精度训练需要一定的硬件配置。虽然混合精度可以在大多数硬件上运行,但只能加速最近的NVIDIA GPU和Cloud TPU上的模型。NVIDIA GPU支持混合使用float16和float32,而TPU支持混合使用bfloat16和float32。
在NVIDIA GPU中,具有7.0或更高计算能力的GPU将受益于混合精度,因为它们具有称为Tensor Core的特殊硬件单元,可以加速float16矩阵乘法和卷积。较旧的GPU不能提供混合精度带来的数学性能优势,但是节省内存和带宽可以提高速度。您可以在NVIDIA的CUDA GPU网页上查找GPU的计算能力。从混合精度中受益最多的GPU实例包括RTX GPU,Titan V和V100。
具体算力可以查看https://blog.youkuaiyun.com/iefenghao/article/details/97956440。(穷人gpu没有资格加速,哭)
#仅支持2.