混合精度与单精度对比

使用混合精度代码更改很少
 

scaler = GradScaler()


with autocast():
    out = model(data)
    loss = loss_func(out, target)
scaler.scale(loss).backward()
scaler.step(opt)
scaler.update()


只有PASCAL架构显卡

CIFAR1000最大批次
TITAN X PASCAL 12G
单精度batch=3100 混合精度batch=5000  批次大小提升61%倍
GTX1070 8G
单精度batch=2000 混合精度batch=2900  批次大小提升45%倍

CIFAR1000速率测试
batch=2500
TITAN X PASCAL 12G
单精度 15.47s/batch  混合精度 22.8秒/bitch  速率变慢了47%
GTX1070 8G
单精度 18.13s/batch  混合精度 29.6秒/bitch  速度变慢了63%

显存不够可以试试混合精度,PASCAL架构显卡混合精度更慢,有tensor core显卡应该可以加速。

你可能感兴趣的:(深度学习,深度学习)