`fluid.save` vs `fluid.io.save_params`速度慢太多
Created by: Meiyim
paddle测试版本: 1.8.1
测试代码(这里模拟了一个Bert Base模型的参数大小)。
在我的测试中,采用新api(fluid.save
)的写速度是5.8s.
旧api(fluid.io.save_params
)的写速度1s.
对于每100 step就需要保存一次checkpoint的密集训练过程来说,上述diff导致了训练时间的增长。 这快是否有优化空间,至少性能上能够跟旧API对齐?
import paddle as p
import paddle.fluid as f
import paddle.fluid.layers as l
from time import time
from tqdm import tqdm
from paddle.fluid import core
import numpy as np
print(p.__version__)
#f.install_check.run_check()
l.create_parameter(shape=[18000, 768], dtype='float32')
for _ in range(12):
l.create_parameter(shape=[768,768], dtype='float32')
l.create_parameter(shape=[768,768], dtype='float32')
l.create_parameter(shape=[768,768], dtype='float32')
l.create_parameter(shape=[768,768], dtype='float32')
l.create_parameter(shape=[768,3072], dtype='float32')
l.create_parameter(shape=[3072,768], dtype='float32')
exe = f.Executor(f.CUDAPlace(0))
exe.run(f.default_startup_program())
s = time()
for _ in tqdm(range(10)):
f.save(f.default_main_program(), './saved')
#f.io.save_params(exe, './saved_old', f.default_main_program())
e = time()
print(e-s)