diff --git a/onnxruntime/python/tools/tensorrt/perf/benchmark.py b/onnxruntime/python/tools/tensorrt/perf/benchmark.py index 0f06676641..b33491b356 100644 --- a/onnxruntime/python/tools/tensorrt/perf/benchmark.py +++ b/onnxruntime/python/tools/tensorrt/perf/benchmark.py @@ -1590,6 +1590,34 @@ def output_metrics(model_to_metrics, csv_filename): logger.info(f"Tensorrt ratio metrics are saved to csv file: {csv_filename}") +def output_op_metrics(model_to_metrics, csv_filename): + with open(csv_filename, mode="w", newline="") as csv_file: + csv_writer = csv.writer(csv_file) + csv_writer.writerow([model_title, "Ep", "op percentage in each ep"]) + + for model, ep_info in model_to_metrics.items(): + if cuda in ep_info: + cuda_data = ep_info[cuda]["ratio_of_ops_in_cuda_not_fallback_cpu"] + csv_writer.writerow([model, cuda, cuda_data]) + if cuda_fp16 in ep_info: + cuda_fp16_data = ep_info[cuda_fp16]["ratio_of_ops_in_cuda_not_fallback_cpu"] + csv_writer.writerow([model, cuda_fp16, cuda_fp16_data]) + if cuda in ep_info and trt in ep_info: + total_ops_in_cuda = ep_info[cuda]["total_ops"] + cuda_cpu_ops_in_trt = ep_info[trt]["total_ops"] + trt_data = (total_ops_in_cuda - cuda_cpu_ops_in_trt) / total_ops_in_cuda + csv_writer.writerow([model, trt, trt_data]) + if cuda_fp16 in ep_info and trt_fp16 in ep_info: + total_ops_in_cuda = ep_info[cuda_fp16]["total_ops"] + cuda_cpu_ops_in_trt = ep_info[trt_fp16]["total_ops"] + trt_fp16_data = (total_ops_in_cuda - cuda_cpu_ops_in_trt) / total_ops_in_cuda + csv_writer.writerow([model, trt_fp16, trt_fp16_data]) + + logger.info( + f"op metrics for cuda/trt ep are saved to csv file: {csv_filename} and will be displayed at Perf Dashboard" + ) + + def output_system_info(result, csv_filename): with open(csv_filename, mode="a", newline="") as csv_file: column_names = ["cpu_info", "cuda", "gpu_info", "linux_distro", "memory", "trt"] diff --git a/onnxruntime/python/tools/tensorrt/perf/benchmark_wrapper.py b/onnxruntime/python/tools/tensorrt/perf/benchmark_wrapper.py index 2948b9a8bd..93d41551c7 100644 --- a/onnxruntime/python/tools/tensorrt/perf/benchmark_wrapper.py +++ b/onnxruntime/python/tools/tensorrt/perf/benchmark_wrapper.py @@ -1,3 +1,7 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. +# -------------------------------------------------------------------------- import argparse # noqa: F401 import copy # noqa: F401 import csv # noqa: F401 @@ -65,6 +69,7 @@ def main(): benchmark_fail_csv = fail_name + csv_ending # noqa: F405 benchmark_metrics_csv = metrics_name + csv_ending # noqa: F405 + benchmark_op_metrics_csv = op_metrics_name + csv_ending # noqa: F405 benchmark_success_csv = success_name + csv_ending # noqa: F405 benchmark_latency_csv = latency_name + csv_ending # noqa: F405 benchmark_status_csv = status_name + csv_ending # noqa: F405 @@ -166,6 +171,9 @@ def main(): model_to_metrics = read_map_from_file(METRICS_FILE) # noqa: F405 output_metrics(model_to_metrics, os.path.join(path, benchmark_metrics_csv)) # noqa: F405 logger.info(f"\nSaved model metrics results to {benchmark_metrics_csv}") # noqa: F405 + # Output op metrics for dashboard display + output_op_metrics(model_to_metrics, os.path.join(path, benchmark_op_metrics_csv)) # noqa: F405 + logger.info(f"\nSaved model op metrics results to {benchmark_op_metrics_csv}") # noqa: F405 if benchmark: logger.info("\n=========================================") # noqa: F405 diff --git a/onnxruntime/python/tools/tensorrt/perf/model_list.json b/onnxruntime/python/tools/tensorrt/perf/model_list.json index c78b34435f..d7c7d0b40e 100644 --- a/onnxruntime/python/tools/tensorrt/perf/model_list.json +++ b/onnxruntime/python/tools/tensorrt/perf/model_list.json @@ -1,236 +1,236 @@ [ - { - "model_name": "FasterRCNN-10", - "working_directory": "./onnx-zoo-models/FasterRCNN-10", - "model_path": "./faster_rcnn_R_50_FPN_1x.onnx", - "test_data_path": "./" - }, - { - "model_name": "MaskRCNN-10", - "working_directory": "./onnx-zoo-models/MaskRCNN-10/", - "model_path": "./mask_rcnn_R_50_FPN_1x.onnx", - "test_data_path": "./" - }, - { - "model_name": "mobilenetv2-7", - "working_directory": "./onnx-zoo-models/mobilenetv2-7/", - "model_path": "./mobilenetv2-7/mobilenetv2-7.onnx", - "test_data_path": "./mobilenetv2-7/" - }, - { - "model_name": "resnet50-v1-7", - "working_directory": "./onnx-zoo-models/resnet50-v1-7/", - "model_path": "./resnet50v1/resnet50-v1-7.onnx", - "test_data_path": "./resnet50v1/" - }, - { - "model_name": "resnet101-v1-7", - "working_directory": "./onnx-zoo-models/resnet101-v1-7/", - "model_path": "./resnet101v1/resnet101-v1-7.onnx", - "test_data_path": "./resnet101v1/" - }, - { - "model_name": "resnet152-v1-7", - "working_directory": "./onnx-zoo-models/resnet152-v1-7/", - "model_path": "./resnet152v1/resnet152-v1-7.onnx", - "test_data_path": "./resnet152v1/" - }, - { - "model_name": "resnet18-v2-7", - "working_directory": "./onnx-zoo-models/resnet18-v2-7/", - "model_path": "./resnet18v2/resnet18-v2-7.onnx", - "test_data_path": "./resnet18v2/" - }, - { - "model_name": "resnet34-v2-7", - "working_directory": "./onnx-zoo-models/resnet34-v2-7/", - "model_path": "./resnet34v2/resnet34-v2-7.onnx", - "test_data_path": "./resnet34v2/" - }, - { - "model_name": "resnet50-v2-7", - "working_directory": "./onnx-zoo-models/resnet50-v2-7/", - "model_path": "./resnet50v2/resnet50-v2-7.onnx", - "test_data_path": "./resnet50v2/" - }, - { - "model_name": "resnet101-v2-7", - "working_directory": "./onnx-zoo-models/resnet101-v2-7/", - "model_path": "./resnet101v2/resnet101-v2-7.onnx", - "test_data_path": "./resnet101v2/" - }, - { - "model_name": "resnet152-v2-7", - "working_directory": "./onnx-zoo-models/resnet152-v2-7/", - "model_path": "./resnet152v2/resnet152-v2-7.onnx", - "test_data_path": "./resnet152v2/" - }, - { - "model_name": "squeezenet1.1-7", - "working_directory": "./onnx-zoo-models/squeezenet1.1-7/", - "model_path": "./squeezenet1.1/squeezenet1.1.onnx", - "test_data_path": "./squeezenet1.1/" - }, - { - "model_name": "vgg16-7", - "working_directory": "./onnx-zoo-models/vgg16-7/", - "model_path": "./vgg16/vgg16.onnx", - "test_data_path": "./vgg16/" - }, - { - "model_name": "vgg19-bn-7", - "working_directory": "./onnx-zoo-models/vgg19-bn-7/", - "model_path": "./vgg19-bn/vgg19-bn.onnx", - "test_data_path": "./vgg19-bn/" - }, - { - "model_name": "bvlcalexnet-9", - "working_directory": "./onnx-zoo-models/bvlcalexnet-9/", - "model_path": "./bvlc_alexnet/model.onnx", - "test_data_path": "./bvlc_alexnet/" - }, - { - "model_name": "googlenet-9", - "working_directory": "./onnx-zoo-models/googlenet-9/", - "model_path": "./bvlc_googlenet/model.onnx", - "test_data_path": "./bvlc_googlenet/" - }, - { - "model_name": "caffenet-9", - "working_directory": "./onnx-zoo-models/caffenet-9/", - "model_path": "./bvlc_reference_caffenet/model.onnx", - "test_data_path": "./bvlc_reference_caffenet/" - }, - { - "model_name": "rcnn-ilsvrc13-9", - "working_directory": "./onnx-zoo-models/rcnn-ilsvrc13-9/", - "model_path": "./bvlc_reference_rcnn_ilsvrc13/model.onnx", - "test_data_path": "./bvlc_reference_rcnn_ilsvrc13/" - }, - { - "model_name": "densenet-9", - "working_directory": "./onnx-zoo-models/densenet-9/", - "model_path": "./densenet121/model.onnx", - "test_data_path": "./densenet121/" - }, - { - "model_name": "inception-v1-9", - "working_directory": "./onnx-zoo-models/inception-v1-9/", - "model_path": "./inception_v1/model.onnx", - "test_data_path": "./inception_v1/" - }, - { - "model_name": "inception-v2-9", - "working_directory": "./onnx-zoo-models/inception-v2-9/", - "model_path": "./inception_v2/model.onnx", - "test_data_path": "./inception_v2/" - }, - { - "model_name": "shufflenet-9", - "working_directory": "./onnx-zoo-models/shufflenet-9/", - "model_path": "./shufflenet/model.onnx", - "test_data_path": "./shufflenet/" - }, - { - "model_name": "shufflenet-v2-10", - "working_directory": "./onnx-zoo-models/shufflenet-v2-10/", - "model_path": "./model/test_shufflenetv2/model.onnx", - "test_data_path": "./model/test_shufflenetv2/" - }, - { - "model_name": "mnist-8", - "working_directory": "./onnx-zoo-models/mnist-8/", - "model_path": "./mnist/model.onnx", - "test_data_path": "./mnist/" - }, - { - "model_name": "tinyyolov2-8", - "working_directory": "./onnx-zoo-models/tinyyolov2-8/", - "model_path": "./tiny_yolov2/Model.onnx", - "test_data_path": "./tiny_yolov2/" - }, - { - "model_name": "ssd-10", - "working_directory": "./onnx-zoo-models/ssd-10/", - "model_path": "./model.onnx", - "test_data_path": "./" - }, - { - "model_name": "ssd_mobilenet_v1_10", - "working_directory": "./onnx-zoo-models/ssd_mobilenet_v1_10/", - "model_path": "./ssd_mobilenet_v1/ssd_mobilenet_v1.onnx", - "test_data_path": "./ssd_mobilenet_v1/" - }, - { - "model_name": "retinanet-9", - "working_directory": "./onnx-zoo-models/retinanet-9/", - "model_path": "./test_retinanet_resnet101/retinanet-9.onnx", - "test_data_path": "./test_retinanet_resnet101/" - }, - { - "model_name": "yolov3-10", - "working_directory": "./onnx-zoo-models/yolov3-10/", - "model_path": "./yolov3/yolov3.onnx", - "test_data_path": "./yolov3/" - }, - { - "model_name": "tiny-yolov3-11", - "working_directory": "./onnx-zoo-models/tiny-yolov3-11/", - "model_path": "./yolov3-tiny.onnx", - "test_data_path": "./" - }, - { - "model_name": "yolov4", - "working_directory": "./onnx-zoo-models/yolov4/", - "model_path": "./yolov4/yolov4_shape.onnx", - "test_data_path": "./yolov4/" - }, - { - "model_name": "ResNet101-DUC-7", - "working_directory": "./onnx-zoo-models/ResNet101-DUC-7/", - "model_path": "./ResNet101_DUC_HDC/ResNet101_DUC_HDC.onnx", - "test_data_path": "./ResNet101_DUC_HDC/" - }, - { - "model_name": "emotion-ferplus-8", - "working_directory": "./onnx-zoo-models/emotion-ferplus-8/", - "model_path": "./emotion_ferplus/model.onnx", - "test_data_path": "./emotion_ferplus/" - }, - { - "model_name": "bertsquad-10", - "working_directory": "./onnx-zoo-models/bertsquad-10/", - "model_path": "./bertsquad-10/bertsquad10.onnx", - "test_data_path": "./bertsquad-10/" - }, - { - "model_name": "gpt2-lm-head-10", - "working_directory": "./onnx-zoo-models/gpt2-lm-head-10/", - "model_path": "./GPT-2-LM-HEAD/model.onnx", - "test_data_path": "./GPT-2-LM-HEAD/" - }, - { - "model_name": "gpt2-10", - "working_directory": "./onnx-zoo-models/gpt2-10/", - "model_path": "./GPT2/model.onnx", - "test_data_path": "./GPT2/" - }, - { - "model_name": "zfnet512-9", - "working_directory": "./onnx-zoo-models/zfnet512-9/", - "model_path": "./zfnet512/model.onnx", - "test_data_path": "./zfnet512/" - }, - { - "model_name": "arcfaceresnet100-8", - "working_directory": "./onnx-zoo-models/arcfaceresnet100-8/", - "model_path": "./resnet100/resnet100.onnx", - "test_data_path": "./resnet100/" - }, - { - "model_name": "mosaic-9", - "working_directory": "./onnx-zoo-models/mosaic-9/", - "model_path": "./mosaic/mosaic.onnx", - "test_data_path": "./mosaic/" - } -] + { + "model_name": "FasterRCNN-10", + "working_directory": "./onnx-zoo-models/FasterRCNN-10", + "model_path": "./faster_rcnn_R_50_FPN_1x.onnx", + "test_data_path": "./" + }, + { + "model_name": "MaskRCNN-10", + "working_directory": "./onnx-zoo-models/MaskRCNN-10/", + "model_path": "./mask_rcnn_R_50_FPN_1x.onnx", + "test_data_path": "./" + }, + { + "model_name": "mobilenetv2-7", + "working_directory": "./onnx-zoo-models/mobilenetv2-7/", + "model_path": "./mobilenetv2-7/mobilenetv2-7.onnx", + "test_data_path": "./mobilenetv2-7/" + }, + { + "model_name": "resnet50-v1-7", + "working_directory": "./onnx-zoo-models/resnet50-v1-7/", + "model_path": "./resnet50v1/resnet50-v1-7.onnx", + "test_data_path": "./resnet50v1/" + }, + { + "model_name": "resnet101-v1-7", + "working_directory": "./onnx-zoo-models/resnet101-v1-7/", + "model_path": "./resnet101v1/resnet101-v1-7.onnx", + "test_data_path": "./resnet101v1/" + }, + { + "model_name": "resnet152-v1-7", + "working_directory": "./onnx-zoo-models/resnet152-v1-7/", + "model_path": "./resnet152v1/resnet152-v1-7.onnx", + "test_data_path": "./resnet152v1/" + }, + { + "model_name": "resnet18-v2-7", + "working_directory": "./onnx-zoo-models/resnet18-v2-7/", + "model_path": "./resnet18v2/resnet18-v2-7.onnx", + "test_data_path": "./resnet18v2/" + }, + { + "model_name": "resnet34-v2-7", + "working_directory": "./onnx-zoo-models/resnet34-v2-7/", + "model_path": "./resnet34v2/resnet34-v2-7.onnx", + "test_data_path": "./resnet34v2/" + }, + { + "model_name": "resnet50-v2-7", + "working_directory": "./onnx-zoo-models/resnet50-v2-7/", + "model_path": "./resnet50v2/resnet50-v2-7.onnx", + "test_data_path": "./resnet50v2/" + }, + { + "model_name": "resnet101-v2-7", + "working_directory": "./onnx-zoo-models/resnet101-v2-7/", + "model_path": "./resnet101v2/resnet101-v2-7.onnx", + "test_data_path": "./resnet101v2/" + }, + { + "model_name": "resnet152-v2-7", + "working_directory": "./onnx-zoo-models/resnet152-v2-7/", + "model_path": "./resnet152v2/resnet152-v2-7.onnx", + "test_data_path": "./resnet152v2/" + }, + { + "model_name": "squeezenet1.1-7", + "working_directory": "./onnx-zoo-models/squeezenet1.1-7/", + "model_path": "./squeezenet1.1/squeezenet1.1.onnx", + "test_data_path": "./squeezenet1.1/" + }, + { + "model_name": "vgg16-7", + "working_directory": "./onnx-zoo-models/vgg16-7/", + "model_path": "./vgg16/vgg16.onnx", + "test_data_path": "./vgg16/" + }, + { + "model_name": "vgg19-bn-7", + "working_directory": "./onnx-zoo-models/vgg19-bn-7/", + "model_path": "./vgg19-bn/vgg19-bn.onnx", + "test_data_path": "./vgg19-bn/" + }, + { + "model_name": "bvlcalexnet-9", + "working_directory": "./onnx-zoo-models/bvlcalexnet-9/", + "model_path": "./bvlc_alexnet/model.onnx", + "test_data_path": "./bvlc_alexnet/" + }, + { + "model_name": "googlenet-9", + "working_directory": "./onnx-zoo-models/googlenet-9/", + "model_path": "./bvlc_googlenet/model.onnx", + "test_data_path": "./bvlc_googlenet/" + }, + { + "model_name": "caffenet-9", + "working_directory": "./onnx-zoo-models/caffenet-9/", + "model_path": "./bvlc_reference_caffenet/model.onnx", + "test_data_path": "./bvlc_reference_caffenet/" + }, + { + "model_name": "rcnn-ilsvrc13-9", + "working_directory": "./onnx-zoo-models/rcnn-ilsvrc13-9/", + "model_path": "./bvlc_reference_rcnn_ilsvrc13/model.onnx", + "test_data_path": "./bvlc_reference_rcnn_ilsvrc13/" + }, + { + "model_name": "densenet-9", + "working_directory": "./onnx-zoo-models/densenet-9/", + "model_path": "./densenet121/model.onnx", + "test_data_path": "./densenet121/" + }, + { + "model_name": "inception-v1-9", + "working_directory": "./onnx-zoo-models/inception-v1-9/", + "model_path": "./inception_v1/model.onnx", + "test_data_path": "./inception_v1/" + }, + { + "model_name": "inception-v2-9", + "working_directory": "./onnx-zoo-models/inception-v2-9/", + "model_path": "./inception_v2/model.onnx", + "test_data_path": "./inception_v2/" + }, + { + "model_name": "shufflenet-9", + "working_directory": "./onnx-zoo-models/shufflenet-9/", + "model_path": "./shufflenet/model.onnx", + "test_data_path": "./shufflenet/" + }, + { + "model_name": "shufflenet-v2-10", + "working_directory": "./onnx-zoo-models/shufflenet-v2-10/", + "model_path": "./model/test_shufflenetv2/model.onnx", + "test_data_path": "./model/test_shufflenetv2/" + }, + { + "model_name": "mnist-8", + "working_directory": "./onnx-zoo-models/mnist-8/", + "model_path": "./mnist/model.onnx", + "test_data_path": "./mnist/" + }, + { + "model_name": "tinyyolov2-8", + "working_directory": "./onnx-zoo-models/tinyyolov2-8/", + "model_path": "./tiny_yolov2/Model.onnx", + "test_data_path": "./tiny_yolov2/" + }, + { + "model_name": "ssd-10", + "working_directory": "./onnx-zoo-models/ssd-10/", + "model_path": "./model.onnx", + "test_data_path": "./" + }, + { + "model_name": "ssd_mobilenet_v1_10", + "working_directory": "./onnx-zoo-models/ssd_mobilenet_v1_10/", + "model_path": "./ssd_mobilenet_v1/ssd_mobilenet_v1.onnx", + "test_data_path": "./ssd_mobilenet_v1/" + }, + { + "model_name": "retinanet-9", + "working_directory": "./onnx-zoo-models/retinanet-9/", + "model_path": "./test_retinanet_resnet101/retinanet-9.onnx", + "test_data_path": "./test_retinanet_resnet101/" + }, + { + "model_name": "yolov3-10", + "working_directory": "./onnx-zoo-models/yolov3-10/", + "model_path": "./yolov3/yolov3.onnx", + "test_data_path": "./yolov3/" + }, + { + "model_name": "tiny-yolov3-11", + "working_directory": "./onnx-zoo-models/tiny-yolov3-11/", + "model_path": "./yolov3-tiny.onnx", + "test_data_path": "./" + }, + { + "model_name": "yolov4", + "working_directory": "./onnx-zoo-models/yolov4/", + "model_path": "./yolov4/yolov4_shape.onnx", + "test_data_path": "./yolov4/" + }, + { + "model_name": "ResNet101-DUC-7", + "working_directory": "./onnx-zoo-models/ResNet101-DUC-7/", + "model_path": "./ResNet101_DUC_HDC/ResNet101_DUC_HDC.onnx", + "test_data_path": "./ResNet101_DUC_HDC/" + }, + { + "model_name": "emotion-ferplus-8", + "working_directory": "./onnx-zoo-models/emotion-ferplus-8/", + "model_path": "./emotion_ferplus/model.onnx", + "test_data_path": "./emotion_ferplus/" + }, + { + "model_name": "bertsquad-10", + "working_directory": "./onnx-zoo-models/bertsquad-10/", + "model_path": "./bertsquad-10/bertsquad10.onnx", + "test_data_path": "./bertsquad-10/" + }, + { + "model_name": "gpt2-lm-head-10", + "working_directory": "./onnx-zoo-models/gpt2-lm-head-10/", + "model_path": "./GPT-2-LM-HEAD/model.onnx", + "test_data_path": "./GPT-2-LM-HEAD/" + }, + { + "model_name": "gpt2-10", + "working_directory": "./onnx-zoo-models/gpt2-10/", + "model_path": "./GPT2/model.onnx", + "test_data_path": "./GPT2/" + }, + { + "model_name": "zfnet512-9", + "working_directory": "./onnx-zoo-models/zfnet512-9/", + "model_path": "./zfnet512/model.onnx", + "test_data_path": "./zfnet512/" + }, + { + "model_name": "arcfaceresnet100-8", + "working_directory": "./onnx-zoo-models/arcfaceresnet100-8/", + "model_path": "./resnet100/resnet100.onnx", + "test_data_path": "./resnet100/" + }, + { + "model_name": "mosaic-9", + "working_directory": "./onnx-zoo-models/mosaic-9/", + "model_path": "./mosaic/mosaic.onnx", + "test_data_path": "./mosaic/" + } +] \ No newline at end of file diff --git a/onnxruntime/python/tools/tensorrt/perf/perf_utils.py b/onnxruntime/python/tools/tensorrt/perf/perf_utils.py index c639c6c73c..c447bf9cff 100644 --- a/onnxruntime/python/tools/tensorrt/perf/perf_utils.py +++ b/onnxruntime/python/tools/tensorrt/perf/perf_utils.py @@ -39,6 +39,7 @@ latency_over_time_name = "latency_over_time" specs_name = "specs" session_name = "session" session_over_time_name = "session_over_time" +op_metrics_name = "op_metrics" # column names model_title = "Model" diff --git a/onnxruntime/python/tools/tensorrt/perf/post.py b/onnxruntime/python/tools/tensorrt/perf/post.py index 350e8b3914..0f5614bd51 100644 --- a/onnxruntime/python/tools/tensorrt/perf/post.py +++ b/onnxruntime/python/tools/tensorrt/perf/post.py @@ -24,6 +24,7 @@ from perf_utils import ( memory_name, memory_over_time_name, model_title, + op_metrics_name, ort_provider_list, provider_list, second, @@ -415,6 +416,7 @@ def main(): specs_name, session_name, session_over_time_name, + op_metrics_name, ] table_results = {} @@ -457,6 +459,11 @@ def main(): table_results[status_name] = pd.concat( [table_results[status_name], get_status(table, model_group)], ignore_index=True ) + elif op_metrics_name in csv: + table = table.assign(Group=model_group) + table_results[op_metrics_name] = pd.concat( + [table_results[op_metrics_name], table], ignore_index=True + ) os.chdir(result_file) if not table_results[memory_name].empty: diff --git a/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_cuda11_8_tensorrt8_6 b/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_cuda11_8_tensorrt8_6 index edc41197be..04a6af962b 100644 --- a/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_cuda11_8_tensorrt8_6 +++ b/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_cuda11_8_tensorrt8_6 @@ -66,7 +66,7 @@ ARG ONNXRUNTIME_BRANCH=main ARG ONNXRUNTIME_COMMIT_ID # The supported CUDA architecture -ARG CMAKE_CUDA_ARCHITECTURES=37;50;52;60;61;70;75;80 +ARG CMAKE_CUDA_ARCHITECTURES=75 WORKDIR ${ONNXRUNTIME_LOCAL_CODE_DIR}