NPU亲和优化器

当前昇腾AI处理器支持NPU亲和的融合优化器功能,针对表1中的优化器做了昇腾AI处理器亲和性优化,使性能提升。使用方式如下,其余参数配置情况均与原生函数一致。
表1 NPU亲和优化器使用方法

优化器名称

样例原代码

修改后代码

sgd

optimizer = torch.optim.SGD(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedSGD(model.parameters(), lr=args.lr)

adadelta

optimizer = torch.optim.Adadelta(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedAdadelta(model.parameters(), lr=args.lr)

lamb

optimizer = torch.optim.Lamb(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedLamb(model.parameters(), lr=args.lr)

adam

optimizer = torch.optim.Adam(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedAdam(model.parameters(), lr=args.lr)

adamw

optimizer = torch.optim.AdamW(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedAdamW(model.parameters(), lr=args.lr)

adamp

optimizer = torch.optim.AdamP(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedAdamP(model.parameters(), lr=args.lr)

bert_adam

optimizer = torch.optim.BertAdam(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedBertAdam(model.parameters(), lr=args.lr)

rmsprop

optimizer = torch.optim.RMSprop(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedRMSprop(model.parameters(), lr=args.lr)

rmsprop_tf

optimizer = torch.optim.RMSpropTF(model.parameters(), lr=args.lr)

optimizer = torch_npu.optim.NpuFusedRMSpropTF(model.parameters(), lr=args.lr)