使用混合精度代码更改很少
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显卡应该可以加速。