def METHOD_NAME(func):
    def _impl(*args, **kwargs):
        for i in range(total_step):
            if i == warmup_step:
                paddle.device.cuda.synchronize()
                start_time = time.time()
            out = func(*args, **kwargs)
        paddle.device.cuda.synchronize()
        end_time = time.time()
        if rank is None or get_ft_para_conf().rank == rank:
            time_interval = end_time - start_time
            num_batch = total_step - warmup_step
            print("Latency: %2fs, QPS: %2f" % (time_interval / num_batch, num_batch * batch_size / time_interval))
        return out
    return _impl