Tensor Float 张量核心计算
在NVIDIA安培架构的显卡上,有张量计算单元(Tensor Core)。在计算时,其使用Tensor Float(TF)格式的数据。
PyTorch在1.7-1.11版本间是默认允许使用TF格式数据进行计算的.
但在最近的1.12版本更新中,PyTorch默认禁用了这一数据格式。PyTorch有关CUDA计算的说明
根据官方的建议(PyTorch论坛有关混合精度运算的建议),通常情况下应当在训练中同时使用AMP(自动混合精度)和TF32张量核心计算,以此尽可能地提高训练效率。
因此,在1.12版本中,需要手动执行这一设定。
使能代码
Tensor Float 32数据类型运算使能如下,相对简单
torch.backends.cuda.matmul.allow_tf32 = True
torch.backends.cudnn.allow_tf32 = True
有关AMP自动混合精度运算的文章如下,需要对代码略作调整
Pytorch自动混合精度(AMP)介绍与使用
PyTorch官方关于AMP的说明
PyTorch官方CUDA - AMP样例代码