import paddle import time paddle.set_device('gpu:0') b = paddle.ones([1000,1000,100,10]) #warm up for i in range(1000): sliced = b[1:1000, 0:1000, 0:100, 0:20] # 这里多变换一些case sliced.contiguous() # 这个会触发kernel执行 paddle.base.core._cuda_synchronize(paddle.CUDAPlace(0)) # 这个是等待所有GPU的kernel执行完成 start = time.time() for i in range(1000): sliced = b[1:1000, 0:1000, 0:100, 0:20] # 这里多变换一些case sliced.contiguous() # 这个会触发kernel执行 paddle.base.core._cuda_synchronize(paddle.CUDAPlace(0)) # 这个是等待所有GPU的kernel执行完成 end = time.time() time_consumed = (end - start)*1e6 print(time_consumed) paddle.base.core._cuda_synchronize(paddle.CUDAPlace(0)) # 这个是等待所有GPU的kernel执行完成 slice_start = time.time() for i in range(1000): sliced = b[1:1000, 0:1000, 0:100, 0:20] # 这里多变换一些case paddle.base.core._cuda_synchronize(paddle.CUDAPlace(0)) # 这个是等待所有GPU的kernel执行完成 slice_end = time.time() slice_time_consumed = (slice_end - slice_start)*1e6 print(slice_time_consumed) print(time_consumed - slice_time_consumed)