run_engine.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import pycuda.gpuarray as gpuarray
  2. import pycuda.driver as cuda
  3. import pycuda.autoinit
  4. # get initial meomry before importing other libraries
  5. gpu_free, gpu_total = cuda.mem_get_info()
  6. gpu_used_0 = (gpu_total - gpu_free)
  7. import argparse
  8. import tensorrt as trt
  9. import numpy as np
  10. import time
  11. parser = argparse.ArgumentParser()
  12. parser.add_argument('engine_path', type=str)
  13. parser.add_argument('--batch_size', type=int, default=1)
  14. parser.add_argument('--num_runs', type=int, default=10)
  15. args = parser.parse_args()
  16. logger = trt.Logger(trt.Logger.INFO)
  17. runtime = trt.Runtime(logger)
  18. with open(args.engine_path, 'rb') as f:
  19. engine = runtime.deserialize_cuda_engine(f.read())
  20. context = engine.create_execution_context()
  21. input_gpu = gpuarray.to_gpu(np.zeros((args.batch_size, 3, 224, 224)).astype(np.float32))
  22. output_gpu = gpuarray.to_gpu(np.zeros((args.batch_size, 1000)).astype(np.float32))
  23. for i in range(args.num_runs):
  24. context.execute(args.batch_size, [int(input_gpu.gpudata), int(output_gpu.gpudata)])
  25. gpu_free, gpu_total = cuda.mem_get_info()
  26. gpu_used_1 = (gpu_total - gpu_free)
  27. print('%dMB GPU MEMORY DELTA' % ((gpu_used_1 - gpu_used_0) // 1e6))