in 2-dl-container/Container-Root/job/resnet/direct_benchmark-gpu.py [0:0]
def benchmark(num_models, num_threads, num_requests, model_file, torchscript=True):
# Load a model into each NeuronCore
print('Loading Models To Memory')
models = [load_model(model_file, torchscript) for _ in range(num_models)]
print('Starting benchmark')
output_list = []
begin = time.time()
futures = []
# Submit all tasks and wait for them to finish
# https://stackoverflow.com/questions/51601756/use-tqdm-with-concurrent-futures
with tqdm(total=num_requests) as pbar:
with ThreadPoolExecutor(num_threads) as pool:
for i in range(num_requests):
futures.append(pool.submit(task, models[i % len(models)], random.choice(img_preprocessed_list)))
#output_list.append(output.result())
for _ in concurrent.futures.as_completed(futures):
pbar.update(1)
test_time = time.time() - begin
# return test_time, np.array(output_list)
return test_time