Files
nvidia--tensorrt/samples/python/sample_weight_stripping/notebooks/weight_stripping.ipynb
T
wehub-resource-sync c8a779b1bb
Docker Image CI / build-ubuntu2004 (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:36:55 +08:00

943 lines
212 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "license-cell",
"metadata": {},
"source": [
"```\n",
"SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n",
"SPDX-License-Identifier: Apache-2.0\n",
"\n",
"Licensed under the Apache License, Version 2.0 (the \"License\"); \n",
"you may not use this file except in compliance with the License. \n",
"You may obtain a copy of the License at\n",
"\n",
"http://www.apache.org/licenses/LICENSE-2.0\n",
"\n",
"Unless required by applicable law or agreed to in writing, software\n",
"distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"See the License for the specific language governing permissions and\n",
"limitations under the License.\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "bbb82290-07cd-4b09-afa4-cf4ad3002f06",
"metadata": {},
"source": [
"<img src=\"http://developer.download.nvidia.com/compute/machine-learning/frameworks/nvidia_logo.png\" style=\"width: 90px; float: right;\">\n",
"\n",
"# ResNet50 with Weight Stripping\n",
"\n",
"NVIDIA® [TensorRT](https://developer.nvidia.com/tensorrt)™ is an SDK designed for high-performance deep learning inference. TensorRT acts as an Ahead-of-Time (AoT) compiler, which necessitates the offline generation of an engine plan file. This file contains optimized backend kernels tailored for the production environment, with both the kernel code and weights embedded within it. \n",
"\n",
"For Independent Software Vendors (ISVs) deploying these engine plan files, it is crucial to have one engine file per SKU to achieve optimal performance. When there are N SKUs, the weights are duplicated N times, significantly increasing the installer size. This is particularly problematic for the Windows platform, which has over 40 consumer SKUs. \n",
"\n",
"To address this issue, we introduced the weight stripping feature in TensorRT 10.0. With weight stripping enabled, TensorRT creates a refittable engine based on the assumption that the refit weights will be identical to those provided during the build. The resulting engine maintains the same performance as a non-refittable one. All refittable weights can be adjusted through the refit API. Moreover, by stripping all the refittable weights, we produce a small plan file, with weights supplied later via refitting. This approach allows the use of a single set of weights across different inference backends or TensorRT plans for multiple GPU architectures. \n",
"\n",
"This notebook demonstrates how to use TensorRT to build a weight-stripped engine and later refit it to a full engine for inference, using ResNet-50 as an example.\n",
"\n",
"## Content\n",
"1. [Download model and install pre-requisites](#1)\n",
"2. [Building a full TensorRT engine](#2)\n",
"3. [Building a weight-stripped TensorRT engine](#3)\n",
"4. [Running inference example using the full engine](#4)\n",
"5. [Running inference example using the weight-stripped engine](#5)\n",
"6. [Serialize the refitted weight-stripped engine (optional)](#6)\n",
"7. [Inference benchmarking](#7)\n",
"8. [Engine plan size comparison](#8)\n",
"9. [Advanced topic: weight-stripping with lean runtime](#9)"
]
},
{
"cell_type": "markdown",
"id": "ae7cd6b9-0bd0-4e3c-9fbc-fc8c76201ffe",
"metadata": {},
"source": [
"<a id=\"1\"></a>\n",
"\n",
"## 1. Download model and install pre-requisites\n",
"\n",
"### Download model and dataset\n",
"\n",
"First, let's download the ResNet50 ONNX model and test image from TensorRT installer package."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "6e632ed2-ee13-48aa-80f0-16542a0fe798",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2024-05-20 20:02:41-- https://download.onnxruntime.ai/onnx/models/resnet50.tar.gz\n",
"Resolving download.onnxruntime.ai (download.onnxruntime.ai)... 13.107.246.69, 13.107.213.69, 2620:1ec:46::69, ...\n",
"Connecting to download.onnxruntime.ai (download.onnxruntime.ai)|13.107.246.69|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 101632129 (97M) [application/octet-stream]\n",
"Saving to: resnet50.tar.gz\n",
"\n",
"resnet50.tar.gz 100%[===================>] 96.92M 7.35MB/s in 14s \n",
"\n",
"2024-05-20 20:02:56 (6.87 MB/s) - resnet50.tar.gz saved [101632129/101632129]\n",
"\n",
"--2024-05-20 20:03:00-- https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/10.0.1/tars/TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz\n",
"Resolving developer.nvidia.com (developer.nvidia.com)... 152.195.19.142\n",
"Connecting to developer.nvidia.com (developer.nvidia.com)|152.195.19.142|:443... connected.\n",
"HTTP request sent, awaiting response... 302 Found\n",
"Location: https://developer.download.nvidia.com/compute/machine-learning/tensorrt/10.0.1/tars/TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz [following]\n",
"--2024-05-20 20:03:00-- https://developer.download.nvidia.com/compute/machine-learning/tensorrt/10.0.1/tars/TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz\n",
"Resolving developer.download.nvidia.com (developer.download.nvidia.com)... 152.195.19.142\n",
"Connecting to developer.download.nvidia.com (developer.download.nvidia.com)|152.195.19.142|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 2349001911 (2.2G) [application/x-gzip]\n",
"Saving to: TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz\n",
"\n",
"TensorRT-10.0.1.6.L 100%[===================>] 2.19G 227MB/s in 10s \n",
"\n",
"2024-05-20 20:03:12 (215 MB/s) - TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz saved [2349001911/2349001911]\n",
"\n"
]
}
],
"source": [
"!wget https://download.onnxruntime.ai/onnx/models/resnet50.tar.gz -O resnet50.tar.gz\n",
"!tar -xzf resnet50.tar.gz\n",
"\n",
"!wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/10.0.1/tars/TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz\n",
"!tar -xzf TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz TensorRT-10.0.1.6/data/int8_api/reference_labels.txt TensorRT-10.0.1.6/data/int8_api/airliner.ppm\n",
"!mv TensorRT-10.0.1.6/data/int8_api/airliner.ppm .\n",
"!mv TensorRT-10.0.1.6/data/int8_api/reference_labels.txt .\n",
"!rm -rf TensorRT-10.0.1.6 TensorRT-10.0.1.6.Linux.x86_64-gnu.cuda-12.4.tar.gz"
]
},
{
"cell_type": "markdown",
"id": "932a8c50-61ef-4914-9941-05ad411b6527",
"metadata": {},
"source": [
"### Install pre-requisites\n",
"\n",
"The Python sample is built on top of the native TensorRT API. To streamline the code and enhance its readability, we use polygraphy in the notebook. We also use matpoltlib to visualize the data. Therefore, it's necessary to install packages from both the requirement.txt file, polygraphy and matplotlib."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "66a9caf4-aabc-42bd-a387-95a7eba342a3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[0mNote: you may need to restart the kernel to use updated packages.\n",
"\u001b[0mNote: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"%pip install -q -r ../requirements.txt;\n",
"%pip install -q matplotlib colored polygraphy --extra-index-url https://pypi.ngc.nvidia.com;\n",
"import sys\n",
"import site\n",
"sys.path.append(site.getusersitepackages())"
]
},
{
"cell_type": "markdown",
"id": "b22f43cb-d239-4323-ab10-b83b5f3c2095",
"metadata": {},
"source": [
"<a id=\"2\"></a>\n",
"\n",
"## 2. Building a full TensorRT engine\n",
"\n",
"In this section, we will optimize the ResNet model for inference with strongly-typed enabled. The final engine will be saved to the local disk for subsequent engine plan size comparisons."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "42b888e4-fb2e-45a2-bf03-452a976b52aa",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Configuring with profiles:[\n",
" Profile 0:\n",
" {gpu_0/data_0 [min=[1, 3, 224, 224], opt=[1, 3, 224, 224], max=[1, 3, 224, 224]]}\n",
" ]\n",
"\u001b[38;5;14m[I] Building engine with configuration:\n",
" Flags | []\n",
" Engine Capability | EngineCapability.STANDARD\n",
" Memory Pools | [WORKSPACE: 40326.38 MiB, TACTIC_DRAM: 40326.38 MiB, TACTIC_SHARED_MEMORY: 1024.00 MiB]\n",
" Tactic Sources | [EDGE_MASK_CONVOLUTIONS, JIT_CONVOLUTIONS]\n",
" Profiling Verbosity | ProfilingVerbosity.DETAILED\n",
" Preview Features | []\u001b[0m\n",
"\u001b[38;5;10m[I] Finished engine building in 38.595 seconds\u001b[0m\n",
"[I] Saving engine to resnet50_full.plan\n"
]
},
{
"data": {
"text/plain": [
"<tensorrt.tensorrt.ICudaEngine at 0x7f41ed336170>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from polygraphy.backend.trt import CreateConfig, network_from_onnx_path, engine_from_network, save_engine\n",
"\n",
"# Create TensorRT engine from onnx model.\n",
"network = network_from_onnx_path('resnet50/model.onnx', strongly_typed=True)\n",
"config = CreateConfig()\n",
"engine = engine_from_network(network, config)\n",
"save_engine(engine, path='resnet50_full.plan')"
]
},
{
"cell_type": "markdown",
"id": "6c608c03-c835-4778-aea4-cbe1f94c74ef",
"metadata": {},
"source": [
"<a id=\"3\"></a>\n",
"\n",
"## 3. Building a weight-stripped TensorRT engine\n",
"\n",
"To enable weight stripping, simply set the strip_plan flag in the builder configuration. This requires only one line of code modification as shown below:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "19483305-5006-4f00-a0d3-5de6d6504406",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Configuring with profiles:[\n",
" Profile 0:\n",
" {gpu_0/data_0 [min=[1, 3, 224, 224], opt=[1, 3, 224, 224], max=[1, 3, 224, 224]]}\n",
" ]\n",
"\u001b[38;5;14m[I] Building engine with configuration:\n",
" Flags | [STRIP_PLAN]\n",
" Engine Capability | EngineCapability.STANDARD\n",
" Memory Pools | [WORKSPACE: 40326.38 MiB, TACTIC_DRAM: 40326.38 MiB, TACTIC_SHARED_MEMORY: 1024.00 MiB]\n",
" Tactic Sources | [EDGE_MASK_CONVOLUTIONS, JIT_CONVOLUTIONS]\n",
" Profiling Verbosity | ProfilingVerbosity.DETAILED\n",
" Preview Features | []\u001b[0m\n",
"\u001b[38;5;10m[I] Finished engine building in 34.624 seconds\u001b[0m\n",
"[I] Saving engine to resnet50_stripped.plan\n"
]
},
{
"data": {
"text/plain": [
"<tensorrt.tensorrt.ICudaEngine at 0x7f41ed3599b0>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create TensorRT engine from onnx model with weight-stripped.\n",
"config = CreateConfig(strip_plan=True)\n",
"engine = engine_from_network(network, config)\n",
"save_engine(engine, path='resnet50_stripped.plan')"
]
},
{
"cell_type": "markdown",
"id": "af4d7e3c-1f9d-42c9-ba3c-8121a0c085f0",
"metadata": {},
"source": [
"<a id=\"4\"></a>\n",
"\n",
"## 4. Running inference example using the full engine\n",
"\n",
"In this section, we will use an airliner image to verify the inference results on both engines.\n",
"\n",
"### Prepare input data\n",
"Let's use pillow to load the image and load the reference labels from a text file."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f1d42483-1176-407d-89ca-d45506f12db5",
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg": "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",
"image/png": "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",
"text/plain": [
"<PIL.PpmImagePlugin.PpmImageFile image mode=RGB size=224x224>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from PIL import Image\n",
"import numpy as np\n",
"from IPython.display import display\n",
"\n",
"# Load the image.\n",
"image_path = 'airliner.ppm'\n",
"img = Image.open(image_path)\n",
"\n",
"# Display the image.\n",
"display(img)\n",
"\n",
"# Transpose to NCHW layout and normalize data.\n",
"img = np.transpose(img, (2, 0, 1)) \n",
"img = np.array(img).astype(np.float32) / 255.0\n",
"img = np.expand_dims(img, axis=0)\n",
"\n",
"# Load labels\n",
"labels = open('reference_labels.txt', \"r\").read().split(\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "ef7b47f6-6f2b-4edf-b997-b62df1ec36cc",
"metadata": {},
"source": [
"### Load full TensorRT engine"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "776fd81f-d309-4f73-8fde-57d7928bc929",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Loading bytes from resnet50_full.plan\n"
]
}
],
"source": [
"import tensorrt as trt\n",
"from polygraphy.backend.common import bytes_from_path\n",
"from polygraphy.backend.trt import engine_from_bytes\n",
"\n",
"# Load TensorRT engine from plan file.\n",
"TRT_LOGGER = trt.Logger(trt.Logger.WARNING)\n",
"full_engine = engine_from_bytes(bytes_from_path('resnet50_full.plan'))\n"
]
},
{
"cell_type": "markdown",
"id": "f78e141b-22be-415d-8dcb-ae3192102dda",
"metadata": {},
"source": [
"### Inference with full engine\n",
"Let's verify that TensorRT can recognize this image as 'airliner'."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "d4584157-09f1-45d0-89af-d6bb408b670d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Full engine recognize image as 'airliner'!\n"
]
}
],
"source": [
"from polygraphy.backend.trt import TrtRunner\n",
"\n",
"# Inference and get the result.\n",
"with TrtRunner(full_engine) as runner:\n",
" outputs = runner.infer(feed_dict={\"gpu_0/data_0\": img})\n",
"\n",
"pred = labels[np.argmax(outputs['gpu_0/softmax_1'])]\n",
"print(f\"Full engine recognize image as '{pred}'!\")"
]
},
{
"cell_type": "markdown",
"id": "f5d5027b-a68c-4103-beda-46ee6574e514",
"metadata": {},
"source": [
"<a id=\"5\"></a>\n",
"\n",
"## 5. Running inference example using the weight-stripped engine\n",
"\n",
"Now, we will perform inference again using the weight-stripped engine. Let's skip the input data preparation step since it's the same as the full engine inference, and jump straight to loading the engine.\n",
"\n",
"### Load weight-stripped engine and update weights\n",
"Note that this time, all the weights are stripped in the engine. We cannot directly use this engine for inference; instead, we need to pull the weights back using the refit API first. Since the engine was built using an ONNX model, we can use the OnnxParserRefitter class provided by TensorRT to automate the refit."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "51cb8223-9127-4c17-9734-50cb793c3c5c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Loading bytes from resnet50_stripped.plan\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load TensorRT engine from plan file.\n",
"TRT_LOGGER = trt.Logger(trt.Logger.WARNING)\n",
"stripped_engine = engine_from_bytes(bytes_from_path('resnet50_stripped.plan'))\n",
"\n",
"# Update weights using refit API.\n",
"refitter = trt.Refitter(stripped_engine, TRT_LOGGER)\n",
"parser_refitter = trt.OnnxParserRefitter(refitter, TRT_LOGGER)\n",
"parser_refitter.refit_from_file('resnet50/model.onnx')\n",
"refitter.refit_cuda_engine()"
]
},
{
"cell_type": "markdown",
"id": "481303d9-d774-4b76-828c-8b170729ce1d",
"metadata": {},
"source": [
"### Inference with refitted weight-stripped engine\n",
"Let's verify that TensorRT can still recognize this image as 'airliner' on the refitted weight-stripped engine."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "42fe4c5f-108e-4d7f-ae80-a569c76dfe6c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Refitted stripped engine recognize image as 'airliner'!\n"
]
}
],
"source": [
"# Inference and get the result.\n",
"with TrtRunner(stripped_engine) as runner:\n",
" outputs = runner.infer(feed_dict={\"gpu_0/data_0\": img})\n",
"\n",
"pred = labels[np.argmax(outputs['gpu_0/softmax_1'])]\n",
"print(f\"Refitted stripped engine recognize image as '{pred}'!\")"
]
},
{
"cell_type": "markdown",
"id": "a7736d41-1703-4482-96f8-1d1b6ee24018",
"metadata": {},
"source": [
"<a id=\"6\"></a>\n",
"\n",
"## 6. Serialize the refitted weight-stripped engine (optional) \n",
"We can save the refitted, weight-stripped engine to disk, so you won't need to refit it next time you run inference."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6f11ebb7-346d-4d4e-963b-9339d8e4e639",
"metadata": {},
"outputs": [],
"source": [
"# Create config that include weights in plan.\n",
"s_config = stripped_engine.create_serialization_config()\n",
"s_config.flags &= ~(1 << int(trt.SerializationFlag.EXCLUDE_WEIGHTS))\n",
"\n",
"# Serialize the plan file.\n",
"full_binary = engine.serialize_with_config(s_config)\n",
"with open('resnet50_stripped_updated.plan', 'wb') as f:\n",
" f.write(full_binary)"
]
},
{
"cell_type": "markdown",
"id": "705d92bd-4f16-4c50-974d-b414f7314421",
"metadata": {},
"source": [
"<a id=\"7\"></a>\n",
"\n",
"## 7. Inference benchmarking\n",
"We have just finished verifying the accuracy. Now, let's measure the performance between the full engine and the weight-stripped engine.\n",
"\n",
"### Benchmarking a full engine\n",
"First, let's check the total time of 100 iterations on the full engine."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "082e336c-0f8e-4d48-9d69-28dcd6fd9b0f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Full engine inference time on 100 iterations: 0.2675 seconds\n"
]
}
],
"source": [
"import time\n",
"\n",
"# Inference for 100 iterations.\n",
"start_time = time.time()\n",
"with TrtRunner(full_engine) as runner:\n",
" for i in range(100):\n",
" outputs = runner.infer(feed_dict={\"gpu_0/data_0\": img})\n",
"total_time_full = time.time() - start_time\n",
"print(\"Full engine inference time on 100 iterations: {:.4f} seconds\".format(total_time_full))"
]
},
{
"cell_type": "markdown",
"id": "5dbbaf7b-9a70-4478-b675-13656f9b272a",
"metadata": {},
"source": [
"### Benchmarking a weight-stripped engine\n",
"Again, let's use the same code to check the 100 iterations on the weight-stripped engine."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b48f4c09-ab6a-4a6b-bf36-628edf2ca7de",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Refitted stripped engine inference time on 100 iterations: 0.2671 seconds\n"
]
}
],
"source": [
"# Inference for 100 iterations.\n",
"start_time = time.time()\n",
"with TrtRunner(stripped_engine) as runner:\n",
" for i in range(100):\n",
" outputs = runner.infer(feed_dict={\"gpu_0/data_0\": img})\n",
"total_time_stripped = time.time() - start_time\n",
"print(\"Refitted stripped engine inference time on 100 iterations: {:.4f} seconds\".format(total_time_stripped))"
]
},
{
"cell_type": "markdown",
"id": "9dc64563-0088-4682-ba97-8c84523ca1bd",
"metadata": {},
"source": [
"Let's do a comparison, but let's ignore the small variances due to using the floating clock. We can see that there is no performance difference between the full engine and the weight-stripped engine!"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "f4f8c300-eb3a-4b59-958c-5332e8dc546f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGgEXgAAABgagRcAAACGRuAFAACAoRF4AQAAYGi3ReCdN2+e/Pz85ObmpuDgYG3btu26fRcuXKh27dqpYsWKqlixokJCQvL1N5vNGjdunKpXry53d3eFhITo8OHDxX0ZAAAAuA2VeOBdvny5wsPDFRUVpZ07dyowMFChoaE6c+ZMgf3j4uLUu3dvbdiwQVu2bJGvr686d+6s06dPW/pMmzZNc+bM0YIFC7R161aVLVtWoaGhunTp0q26LAAAANwmTGaz2VySBQQHB6tFixaaO3euJCkvL0++vr4aPny4xowZc9Pjc3NzVbFiRc2dO1d9+vSR2WyWj4+PRo0apYiICElSWlqavLy8FB0drV69et10zPT0dHl6eiotLU0eHh5Fu0AbmUy35DQASljJ3nFLjmkCNzngbmCOunU3OXvyWonO8Obk5GjHjh0KCQmxtDk5OSkkJERbtmyxaYysrCxdvnxZlSpVkiQdP35cSUlJVmN6enoqODj4umNmZ2crPT3d6gEAAABjKNHAe+7cOeXm5srLy8uq3cvLS0lJSTaN8dprr8nHx8cScK8dZ8+YU6ZMkaenp+Xh6+tr76UAAADgNlXia3iLYurUqfr888+1YsUKubm5FXqcyMhIpaWlWR6nTp1yYJUAAAAoSaVK8uRVqlSRs7Oz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",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Plot the inference time comparison.\n",
"plt.figure(figsize=(8, 6))\n",
"plt.bar(['full', 'weight-stripped'], [total_time_full, total_time_stripped], color=['blue', 'green'])\n",
"plt.xlabel('Build configurations')\n",
"plt.ylabel('Time / 100 iterations (sec)')\n",
"plt.title('Performance Comparison')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "ec6b666c-2eee-43a0-a6f5-435083ecadf7",
"metadata": {},
"source": [
"<a id=\"8\"></a>\n",
"\n",
"## 8. Engine plan size comparison\n",
"So far, we have verified that we did not lose performance or accuracy for the weight-stripped engine. Now, let's check the engine file size. With simple math, we can see that we reduced 95% of the original engine size. Considering deployment on N SKUs, we will save 95% on each SKU. This will greatly help with the TensorRT integration into your own project."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "ac44f6df-0983-45ec-a33f-4a30a2df1957",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAq4AAAIjCAYAAADC0ZkAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABA8UlEQVR4nO3deViU1f//8dewiiyDoIILuJuaW7ninmJIZbml9alEM61c0/ykVCqWhtmiZmpaJtpmmh8tKzO1MBdyDbNyzy0FzFQWF1CZ3x/9nK8jqGjAcOz5uK65LubMuc/9nhuvuV4ezpzbYrPZbAIAAACKOBdnFwAAAADkBcEVAAAARiC4AgAAwAgEVwAAABiB4AoAAAAjEFwBAABgBIIrAAAAjEBwBQAAgBEIrgAAADACwRWAMSwWi2JiYpxdxjVVrFhRvXr1cnYZ/zq9evVSxYoVnV0GgAJGcAWQZ3FxcbJYLFd9/Pjjj84uscBs375d3bp1U4UKFVSsWDGVK1dO7du319SpU51dmiTp3LlzmjRpkpo0aSKr1apixYqpevXqGjhwoHbv3u3s8gAgX1hsNpvN2UUAMENcXJx69+6tl156SZUqVcrxeocOHVSyZMkCO/+5c+fk5uYmNze3AjtHbtavX6+77rpLoaGhioqKUnBwsA4fPqwff/xR+/bt0969e+19MzMz5eLiInd390Kr7/jx4+rQoYO2bNmi++67T+Hh4fLx8dGuXbs0f/58JScnKysrq9DqcYbz588rOztbnp6ezi4FQAEq3E9/ALeEyMhINWzYsNDPW6xYsUI/pySNHz9eVqtVmzZtkr+/v8Nrx44dc3jujODUq1cv/fTTT/rss8/UtWtXh9defvllvfDCC4VeU2E5ffq0vL29C/U/CgCch6UCAPLdgQMHZLFY9Prrr2vWrFmqUqWKPD091ahRI23atClH/4ULF6pWrVoqVqyYateurcWLF+e6ZvHKNa4xMTGyWCzau3evevXqJX9/f1mtVvXu3VtnzpzJcZ4PP/xQDRo0kJeXlwICAvTQQw/p8OHD130/+/bt0+23354jtEpS6dKlHZ5fucb1WksrDhw4YO+3c+dOdevWTQEBASpWrJgaNmyoL7744rq1bdiwQV999ZX69OmTI7RKfwfp119/3aHtu+++U8uWLeXt7S1/f3898MAD2rFjh0OfS9d29+7devTRR2W1WlWqVCmNGjVKNptNhw8f1gMPPCA/Pz8FBwfrjTfecDg+Pj5eFotFn376qZ5//nkFBwfL29tb999/f45rvmbNGj344IMKDQ2Vp6enQkJCNHToUJ09e9ahX69eveTj46N9+/bpnnvuka+vrx555BH7a1f+e5k/f74aNGggX19f+fn5qU6dOpoyZYpDn99//10PPvigAgICVLx4cTVt2lRfffVVru9lwYIFGj9+vMqXL69ixYqpXbt2DrPtAAoeM64AblhqaqqOHz/u0GaxWBQYGOjQ9vHHHys9PV1PPvmkLBaLJk6cqC5duuj333+3z5B99dVX6tGjh+rUqaPY2FidPHlSffr0Ubly5fJcT/fu3VWpUiXFxsZq69ateu+991S6dGm9+uqr9j7jx4/XqFGj1L17dz3xxBP6888/NXXqVLVq1Uo//fRTrqH0kgoVKighIUG//PKLateunee6JOmDDz7I0fbiiy/q2LFj8vHxkST9+uuvat68ucqVK6eRI0fK29tbCxYsUKdOnbRo0SJ17tz5quNfCrePPfZYnupZuXKlIiMjVblyZcXExOjs2bOaOnWqmjdvrq1bt+YIfz169FDNmjU1YcIEffXVVxo3bpwCAgI0c+ZMtW3bVq+++qo++ugjDR8+XI0aNVKrVq0cjh8/frwsFotGjBihY8eOafLkyQoPD1diYqK8vLwk/f0flzNnzujpp59WYGCgNm7cqKlTp+qPP/7QwoULHca7cOGCIiIi1KJFC73++usqXrx4ru9zxYoVevjhh9WuXTv7v4MdO3Zo3bp1GjJkiCQpJSVFzZo105kzZzR48GAFBgZq7ty5uv/++/XZZ5/luO4TJkyQi4uLhg8frtTUVE2cOFGPPPKINmzYkKdrDyAf2AAgj+bMmWOTlOvD09PT3m///v02SbbAwEDbiRMn7O2ff/65TZJt6dKl9rY6derYypcvb0tPT7e3xcfH2yTZKlSo4HB+SbYxY8bYn48ZM8Ymyfb444879OvcubMtMDDQ/vzAgQM2V1dX2/jx4x36bd++3ebm5paj/UrffvutzdXV1ebq6moLCwuzPffcc7bly5fbsrKycvStUKGCLSoq6qpjTZw40SbJNm/ePHtbu3btbHXq1LGdO3fO3padnW1r1qyZrVq1atesrXPnzjZJtpMnT16z3yX169e3lS5d2vbX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ANWoUUPbt2/XnXfemes4N2LDhg0Oz3/88UdVq1ZNrq6uDm1X9qlZs6akv69fcnKy3NzcVLFixVzPUbNmTW3YsEE9e/a86pgwC0sFgBvUtm1bffDBB1qzZo22b9+uqKgohw9aAP9uJUqUUN26dfXRRx+pTZs2kqRWrVpp69at2r17tz3MjhgxQuvXr9fAgQOVmJioPXv26PPPP7/ql7Pat2+vKlWqKCoqSj///LPWrVunF198UZJuaIazYsWKysjI0KpVq3T8+HGdOXMm135xcXGaPXu2fvnlF/3+++/68MMP5eXlpQoVKtjH+eGHH3TkyBEdP348z+e/5NChQxo2bJh27dqlTz75RFOnTtWQIUMc+qxbt04TJ07U7t27NW3aNC1cuNDeJzw8XGFhYerUqZO+/fZbHThwQOvXr9cLL7ygzZs3S5KGDBmi999/X3PmzNHu3bs1ZswY/frrrzdcK4oOgitwg6Kjo9W6dWvdd999uvfee9WpUydVqVLF2WUBKEJat26tixcv2oNrQECAatWqpeDgYN12222S/l6Hunr1au3evVstW7bUHXfcodGjR6ts2bK5junq6qolS5YoIyNDjRo10hNPPGHfVeDKL3JdS7NmzfTUU0+pR48eKlWqlCZOnJhrP39/f7377rtq3ry56tatq5UrV2rp0qUKDAyUJL300ks6cOCAqlSpclP7zfbs2VNnz55V48aNNWDAAA0ZMiTHzRaeffZZbd68WXfccYfGjRunN998UxEREZL+Dutff/21WrVqpd69e6t69ep66KGHdPDgQfuMdI8ePTRq1Cg999xzatCggQ4ePKinn376hmtF0WGxXblYDwAAGGHdunVq0aKF9u7da9R/oNu0aaP69etf885bFStW1DPPPGPfdQGQWOMKAIAxFi9eLB8fH1WrVk179+7VkCFD1Lx5c6NCK/BPEFwBADBEenq6RowYoUOHDqlkyZIKDw/XG2+84eyygELDUgEAAAAYgS9nAQAAwAgEVwAAABiB4AoAAAAjEFwBAABgBIIrAAAAjEBwBfCvERcXJ39/f/vzmJgY1a9f/5rH9OrVS506dSrQuvJi1qxZCgkJkYuLiyZPnpyn2p3twIEDslgsSkxMdHYpAG4RBFcARV6vXr1ksVjsj8DAQHXo0EE///zzDY3To0cP7d69u4CqLDhpaWkaOHCgRowYoSNHjqhfv34aPny4Vq1a5ezS7HIL+CEhIUpKSlLt2rWdUxSAWw7BFYAROnTooKSkJCUlJWnVqlVyc3PTfffdd0NjeHl5qXTp0gVUYcE5dOiQzp8/r3vvvVdlypRR8eLF5ePjY79nfEE6f/78TR/r6uqq4OBgublxrxsA+YPgCsAInp6eCg4OVnBwsOrXr6+RI0fq8OHD+vPPPyVJ8fHxslgsOnXqlP2YxMREWSwWHThwQFLOpQJXunjxooYNGyZ/f38FBgbqueeeU17u0bJu3Tq1adNGxYsXV4kSJRQREaGTJ09KkjIzMzV48GCVLl1axYoVU4sWLbRp0yb7sZfqXrVqlRo2bKjixYurWbNm2rVrl73mOnXqSJIqV65sfz9XLhW4cOGCBg8ebK99xIgRioqKcpgFrVixYo57w9evX18xMTH25xaLRTNmzND9998vb29vjR8/XhcvXlSfPn1UqVIleXl56bbbbtOUKVPsx8TExGju3Ln6/PPP7bPi8fHxuS4VWL16tRo3bixPT0+VKVNGI0eO1IULF+yvt2nTRoMHD9Zzzz2ngIAABQcHO9Rns9kUExOj0NBQeXp6qmzZsho8ePB1f0cAbg0EVwDGycjI0IcffqiqVavm66zjG2+8obi4OL3//vtau3atTpw4ocWLF1/zmMTERLVr1061atVSQkKC1q5dq44dO+rixYuSpOeee06LFi3S3LlztXXrVlWtWlURERE6ceKEwzgvvPCC3njjDW3evFlubm56/PHHJf29vGHlypWSpI0bNyopKUkhISE56nj11Vf10Ucfac6cOVq3bp3S0tK0ZMmSm7oOMTEx6ty5s7Zv367HH39c2dnZKl++vBYuXKjffvtNo0eP1vPPP68FCxZIkoYPH67u3bs7zIo3a9Ysx7hHjhzRPffco0aNGmnbtm2aMWOGZs+erXHjxjn0mzt3rry9vbVhwwZNnDhRL730klasWCFJWrRokSZNmqSZM2dqz549WrJkiT3YA7j18fcbAEb48ssv5ePjI0k6ffq0ypQpoy+//FIuLvn3/+/JkycrOjpaXbp0kSS98847Wr58+TWPmThxoho2bKjp06fb226//XZ7nTNmzFBcXJwiIyMlSe+++65WrFih2bNn67///a/9mPHjx6t169aSpJEjR+ree+/VuXPn5OXlZQ/npUqVUnBwcK51TJ06VdHR0ercubMk6e2339bXX399M5dB//nPf9S7d2+HtrFjx9p/rlSpkhISErRgwQJ1795dPj4+8vLyUmZm5lXrk6Tp06crJCREb7/9tiwWi2rUqKGjR49qxIgRGj16tP13WbduXY0ZM0aSVK1aNb399ttatWqV2rdvr0OHDik4OFjh4eFyd3dXaGioGjdufFPvE4B5mHEFYIS77rpLiYmJSkxM1MaNGxUREaHIyEgdPHgwX8ZPTU1VUlKSmjRpYm9zc3NTw4YNr3ncpRnX3Ozbt0/nz59X8+bN7W3u7u5q3LixduzY4dC3bt269p/LlCkjSTp27Fiea09JSXEIcK6urmrQoEGejr9Sbu952rRpatCggUqVKiUfHx/NmjVLhw4duqFxd+zYobCwMFksFntb8+bNlZGRoT/++MPedvm1kP6+HpeuxYMPPqizZ8+qcuXK6tu3rxYvXuyw1ADArY3gCsAI3t7eqlq1qqpWrapGjRrpvffe0+nTp/Xuu+9Kkn227vI1qf/ki0V55eXllS/juLu723++FOyys7PzZexLXFxccqzZze0aeXt7OzyfP3++hg8frj59+ujbb79VYmKievfuraysrHyt75LLr4X09/W4dC1CQkK0a9cuTZ8+XV5eXurfv79atWpVKL9rAM5HcAVgJIvFIhcXF509e1bS339Gl6SkpCR7nxvZP9RqtapMmTLasGGDve3ChQvasmXLNY+rW7fuVbelqlKlijw8PLRu3Tp72/nz57Vp0ybVqlUrz7Vdj9VqVVBQkMOXvi5evKitW7c69CtVqpTD9UlLS9P+/fuvO/66devUrFkz9e/fX3fccYeqVq2qffv2OfTx8PCwr+u9mpo1ayohIcEhPK9bt06+vr4qX778deu4xMvLSx07dtRbb72l+Ph4JSQkaPv27Xk+HoC5CK4AjJCZmank5GQlJydrx44dGjRokDIyMtSxY0dJUtWqVRUSEqKYmBjt2bNHX331ld54440bOseQIUM0YcIELVmyRDt37lT//v0ddinITXR0tDZt2qT+/fvr559/1s6dOzVjxgwdP35c3t7eevrpp/Xf//5X33zzjX777Tf17dtXZ86cUZ8+fW72UuRq0KBBio2N1eeff65du3ZpyJAhOnnypMOf5du2basPPvhAa9as0fbt2xUVFSVXV9frjl2tWjVt3rxZy5cv1+7duzVq1CiHkCz9vWPBzz//rF27dun48eO5zoD2799fhw8f1qBBg7Rz5059/vnnGjNmjIYNG5bntcpxcXGaPXu2fvnlF/3+++/68MMP5eXlpQoVKuTpeABm48tZAIzwzTff2Nd++vr6qkaNGlq4cKHatGkj6e8/L3/yySd6+umnVbduXTVq1Ejjxo3Tgw8+mOdzPPvss0pKSlJUVJRcXFz0+OOPq3PnzkpNTb3qMdWrV9e3336r559/Xo0bN5aXl5eaNGmihx9+WJI0YcIEZWdn67HHHlN6eroaNmyo5cuXq0SJEjd/MXIxYsQIJScnq2fPnnJ1dVW/fv0UERHhEEyjo6O1f/9+3XfffbJarXr55ZfzNOP65JNP6qefflKPHj1ksVj08MMPq3///lq2bJm9T9++fRUfH6+GDRsqIyND33//vSpWrOgwTrly5fT111/rv//9r+rVq6eAgAD16dNHL774Yp7fp7+/vyZMmKBhw4bp4sWLqlOnjpYuXVooe9oCcD6LLS+bFAIAjJKdna2aNWuqe/fuevnll51dDgDkC2ZcAeAWcPDgQX377bdq3bq1MjMz9fbbb2v//v36z3/+4+zSACDfsMYVAG4BLi4uiouLU6NGjdS8eXNt375dK1euVM2aNZ1dGgDkG5YKAAAAwAjMuAIAAMAIBFcAAAAYgeAKAAAAIxBcAQAAYASCKwAAAIxAcAUAAIARCK4AAAAwAsEVAAAARvh/AKsjnCZn3JQAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import os \n",
"\n",
"# Get the file sizes in MiB\n",
"full_size = os.path.getsize('resnet50_full.plan') / 1024 / 1024\n",
"stripped_size = os.path.getsize('resnet50_stripped.plan') / 1024 / 1024\n",
"\n",
"# Plot the engine size comparison.\n",
"plt.figure(figsize=(8, 6))\n",
"plt.bar(['full', 'weight-stripped'], [full_size, stripped_size], color=['blue', 'green'])\n",
"plt.xlabel('Build configurations')\n",
"plt.ylabel('Size (MiB)')\n",
"plt.title('Engine Size Comparison')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "63849d12-4565-457e-a64c-724935f3f276",
"metadata": {},
"source": [
"<a id=\"9\"></a>\n",
"\n",
"## 9. Advanced topic: weight-stripping with lean runtime\n"
]
},
{
"cell_type": "markdown",
"id": "3c7498ff-d879-48e5-ab00-b7c2c3c1da85",
"metadata": {},
"source": [
"Additionally, we can leverage the lean runtime to further reduce the package size for the weight-stripped engine. The lean runtime is the same runtime used in version-compatible engines. Originally designed to enable users to generate a TensorRT engine with version X and load it with an application built with version Y, the lean runtime library is relatively small, approximately 40 MiB. Therefore, software distributors on top of TensorRT only need to ship the weight-stripped engine along with the 40 MiB lean runtime when the weights are already available on the target customer machine.\n",
"\n",
"### Build with version compatible\n",
"This can be achieved with as little as one line change to the builder code."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "79b7b4be-1377-48e5-9a45-ad249fec04af",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Configuring with profiles:[\n",
" Profile 0:\n",
" {gpu_0/data_0 [min=[1, 3, 224, 224], opt=[1, 3, 224, 224], max=[1, 3, 224, 224]]}\n",
" ]\n",
"[I] Version or hardware compatibility was enabled. If you are using an ONNX model, please set the NATIVE_INSTANCENORM ONNX parser flag, e.g. `--onnx-flags NATIVE_INSTANCENORM`\n",
"\u001b[38;5;14m[I] Building engine with configuration:\n",
" Flags | [VERSION_COMPATIBLE, EXCLUDE_LEAN_RUNTIME]\n",
" Engine Capability | EngineCapability.STANDARD\n",
" Memory Pools | [WORKSPACE: 40326.38 MiB, TACTIC_DRAM: 40326.38 MiB, TACTIC_SHARED_MEMORY: 1024.00 MiB]\n",
" Tactic Sources | [EDGE_MASK_CONVOLUTIONS, JIT_CONVOLUTIONS]\n",
" Profiling Verbosity | ProfilingVerbosity.DETAILED\n",
" Preview Features | []\u001b[0m\n",
"\u001b[38;5;10m[I] Finished engine building in 38.043 seconds\u001b[0m\n",
"[I] Saving engine to resnet50_full_vc.plan\n"
]
},
{
"data": {
"text/plain": [
"<tensorrt.tensorrt.ICudaEngine at 0x7f40a4359970>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Build TensorRT full engine with version compatible.\n",
"config = CreateConfig(version_compatible=True, exclude_lean_runtime=True)\n",
"engine = engine_from_network(network, config)\n",
"save_engine(engine, path='resnet50_full_vc.plan')"
]
},
{
"cell_type": "markdown",
"id": "fb64a682-148e-4599-b0ce-24ff2094831c",
"metadata": {},
"source": [
"### Build with both weight-stripped and version compatible\n",
"This can also be accomplished with just a single line change to the builder code."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9fc753b-fc1e-470d-96a7-f7fafaabca0d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Configuring with profiles:[\n",
" Profile 0:\n",
" {gpu_0/data_0 [min=[1, 3, 224, 224], opt=[1, 3, 224, 224], max=[1, 3, 224, 224]]}\n",
" ]\n",
"[I] Version or hardware compatibility was enabled. If you are using an ONNX model, please set the NATIVE_INSTANCENORM ONNX parser flag, e.g. `--onnx-flags NATIVE_INSTANCENORM`\n",
"\u001b[38;5;14m[I] Building engine with configuration:\n",
" Flags | [VERSION_COMPATIBLE, EXCLUDE_LEAN_RUNTIME, STRIP_PLAN]\n",
" Engine Capability | EngineCapability.STANDARD\n",
" Memory Pools | [WORKSPACE: 40326.38 MiB, TACTIC_DRAM: 40326.38 MiB, TACTIC_SHARED_MEMORY: 1024.00 MiB]\n",
" Tactic Sources | [EDGE_MASK_CONVOLUTIONS, JIT_CONVOLUTIONS]\n",
" Profiling Verbosity | ProfilingVerbosity.DETAILED\n",
" Preview Features | []\u001b[0m\n",
"\u001b[38;5;10m[I] Finished engine building in 36.902 seconds\u001b[0m\n",
"[I] Saving engine to resnet50_stripped_vc.plan\n"
]
},
{
"data": {
"text/plain": [
"<tensorrt.tensorrt.ICudaEngine at 0x7f3fe0f5ca70>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Build TensorRT weight-stripped engine with version compatible.\n",
"config = CreateConfig(strip_plan=True, version_compatible=True, exclude_lean_runtime=True)\n",
"engine = engine_from_network(network, config)\n",
"save_engine(engine, path='resnet50_stripped_vc.plan')"
]
},
{
"cell_type": "markdown",
"id": "8a8d1e6c-dd81-41bb-8c51-e3e2a872e597",
"metadata": {},
"source": [
"### Load weight-stripped engine with lean runtime\n",
"\n",
"The dispatch runtime and lean runtime are the dependency libraries you need to ship with your software. Here, the dispatch runtime serves as a shim library, forwarding API calls to the lean runtime. Meanwhile, the lean runtime contains both the host code and device code necessary to launch your inference job.\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "cc9a7dd1-f614-413d-8cf2-745615ee16d2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[I] Loading TensorRT runtime from: /usr/lib/x86_64-linux-gnu/libnvinfer_lean.so\n",
"[I] Loading bytes from resnet50_stripped_vc.plan\n"
]
}
],
"source": [
"from polygraphy.backend.trt import load_runtime\n",
"\n",
"# Load the weight-stripped engine using lean runtime.\n",
"lean_runtime = load_runtime('/usr/lib/x86_64-linux-gnu/libnvinfer_lean.so')\n",
"stripped_vc_engine = engine_from_bytes(bytes_from_path('resnet50_stripped_vc.plan'), runtime=lean_runtime)"
]
},
{
"cell_type": "markdown",
"id": "c2e5a7fd-e921-4ad6-b65a-3d6f38eab4ad",
"metadata": {},
"source": [
"### Update weights using refit API\n",
"\n",
"We still use the same refit API to update the weights loaded from the lean runtime."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "888861e6-03d2-4997-8023-d4096b37e545",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the weight-stripped engine using refit API.\n",
"refitter = trt.Refitter(stripped_vc_engine, TRT_LOGGER)\n",
"parser_refitter = trt.OnnxParserRefitter(refitter, TRT_LOGGER)\n",
"parser_refitter.refit_from_file('resnet50/model.onnx')\n",
"refitter.refit_cuda_engine()"
]
},
{
"cell_type": "markdown",
"id": "c64e4686-41c4-451b-b90e-905246372f19",
"metadata": {},
"source": [
"### Inference with airliner image\n",
"Now it is time to verify the result!"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "bc9ee086-cc92-464c-b46a-7d379265c174",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Refitted stripped VC engine recognize image as 'airliner'!\n"
]
}
],
"source": [
"# Inference and get the result.\n",
"with TrtRunner(stripped_vc_engine) as runner:\n",
" outputs = runner.infer(feed_dict={\"gpu_0/data_0\": img})\n",
"\n",
"pred = labels[np.argmax(outputs['gpu_0/softmax_1'])]\n",
"print(f\"Refitted stripped VC engine recognize image as '{pred}'!\")"
]
},
{
"cell_type": "markdown",
"id": "733616c8-4d66-4987-9c40-6c1aec7fe751",
"metadata": {},
"source": [
"### Size comparison of different deployment solution\n",
"Finally let's compare the four solutions here:\n",
"- Full engine + full runtime\n",
"- Weight-stripped engine + full runtime\n",
"- Full engine + lean runtime + dispatch runtime\n",
"- Weight-stripped engine + lean runtime + dispatch runtime"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "46a86192-e11c-481c-b98e-900aab72d3f2",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAIjCAYAAAAZajMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABRJklEQVR4nO3de3zP9f//8ft7ZjNmY9iJmXPIMcdRNofMckiUSJrDB2VOUUkphxTp4JBTSqbSgZxKITmTJKwk5+YQ5hA2cxi25+8Pv72/3jZsbN7z6na9XN6Xy16v1/P1ej1e773er933ej/fz7fNGGMEAAAAWICLswsAAAAAsgrhFgAAAJZBuAUAAIBlEG4BAABgGYRbAAAAWAbhFgAAAJZBuAUAAIBlEG4BAABgGYRbAAAAWAbhFriHDRs2TDab7a7sKywsTGFhYfbpVatWyWaz6Ztvvrkr+7/XdO7cWZ6ens4uI9tER0fLZrNp//79zi7lP2X//v2y2WyKjo52dilAjkW4BXKI1LCQ+siTJ48CAwMVHh6uCRMm6OzZs1mynyNHjmjYsGGKiYnJku1lpeyqLTUQpD5y5cql4sWL67HHHsuRz4MzXbp0SePHj1f16tXl5eWlAgUK6P7771ePHj20c+dOZ5cnSYqJidHTTz+toKAgubu7y8fHR02aNNGMGTOUnJzs7PIAOJmrswsA4GjEiBEqWbKkLl++rLi4OK1atUr9+/fX+++/r2+//VZVqlSxtx0yZIhefvnlTG3/yJEjGj58uEqUKKFq1apleL0ff/wxU/u5HbdbW0Z16NBBjzzyiJKTk7Vjxw5NmTJFixcv1i+//JIt+7sXtW3bVosXL1aHDh3UvXt3Xb58WTt37tSiRYtUr149lS9fXpLUqVMntW/fXu7u7ne1vo8//ljPPvus/Pz81KlTJ5UtW1Znz57V8uXL1a1bNx09elSvvPLKXa3pbgoODtaFCxeUO3duZ5cC5FiEWyCHiYiIUM2aNe3TgwcP1ooVK9SiRQu1atVKO3bskIeHhyTJ1dVVrq7Z+zI+f/688ubNKzc3t2zdz93wwAMP6Omnn7ZP169fX61atdKUKVP04YcfOrGynGHTpk1atGiR3nzzzTQBceLEiTpz5ox9OleuXMqVK9ddre+XX37Rs88+q5CQEP3www/Knz+/fVn//v3122+/6c8//7yrNd0tV65cUUpKitzc3JQnTx5nlwPkaHRLAO4BjRo10muvvaYDBw7o888/t89Pr8/tsmXL9OCDD6pAgQLy9PTUfffdZw8qq1atUq1atSRJXbp0sb9Nn9p/LywsTJUqVdLmzZvVoEED5c2b177u9X1uUyUnJ+uVV16Rv7+/8uXLp1atWunQoUMObUqUKKHOnTunWffabd6qNknauHGjmjVrJm9vb+XNm1ehoaFav359hp/H6zVq1EiSFBsbK0lauHChmjdvrsDAQLm7u6t06dJ644030n2re+PGjXrkkUdUsGBB5cuXT1WqVNH48eNvur+YmBgVKVJEYWFhSkxMlCS9++67qlevngoVKiQPDw/VqFEj3X7MFy5cUN++fVW4cGHlz59frVq10uHDh2Wz2TRs2DCHtocPH1bXrl3l5+cnd3d33X///frkk09u+Xzs27dP0tXQf71cuXKpUKFC9unr+9ymnovpPa793aekpGjcuHG6//77lSdPHvn5+alnz546ffr0LesbPny4bDabZs2a5RBsU9WsWdNhX+fOndPAgQPt3Rfuu+8+vfvuuzLGOKxns9nUu3dvzZkzRxUrVpSHh4dCQkK0bds2SdKHH36oMmXKKE+ePAoLC0vTz/ja1029evXk4eGhkiVLaurUqQ7tLl26pNdff101atSQt7e38uXLp4ceekgrV650aJfajebdd9/VuHHjVLp0abm7u+uvv/5Kt89tXFycunTpomLFisnd3V0BAQF69NFH09Q5efJk3X///XJ3d1dgYKCioqIc/mG59lj++usvNWzYUHnz5lXRokU1ZsyYm/xmgJyFO7fAPaJTp0565ZVX9OOPP6p79+7pttm+fbtatGihKlWqaMSIEXJ3d9fevXvtAbBChQoaMWKEXn/9dfXo0UMPPfSQJKlevXr2bfz777+KiIhQ+/bt9fTTT8vPz++mdb355puy2WwaNGiQjh8/rnHjxqlJkyaKiYmx32HOiFvVtmLFCkVERKhGjRoaOnSoXFxcNGPGDDVq1Ehr165V7dq1M7yvVKlhLjW0RUdHy9PTUwMGDJCnp6dWrFih119/XQkJCXrnnXfs6y1btkwtWrRQQECA+vXrJ39/f+3YsUOLFi1Sv3790t3Xpk2bFB4erpo1a2rhwoX252b8+PFq1aqVOnbsqEuXLumrr77SE088oUWLFql58+b29Tt37qzZs2erU6dOqlu3rlavXu2wPNWxY8dUt25de2ArUqSIFi9erG7duikhIUH9+/e/4fMRHBwsSZo1a5bq16+fqXcF2rRpozJlyjjM27x5s8aNGydfX1/7vJ49eyo6OlpdunRR3759FRsbq4kTJ2rr1q1av379Dd9uP3/+vJYvX64GDRqoePHit6zHGKNWrVpp5cqV6tatm6pVq6alS5fqxRdf1OHDhzV27FiH9mvXrtW3336rqKgoSdKoUaPUokULvfTSS5o8ebJ69eql06dPa8yYMeratatWrFjhsP7p06f1yCOPqF27durQoYNmz56t5557Tm5uburataskKSEhQR9//LG9y8fZs2c1ffp0hYeH69dff03TNWbGjBm6ePGievToYe9bnJKSkuZY27Ztq+3bt6tPnz4qUaKEjh8/rmXLlungwYMqUaKEpKv/fAwfPlxNmjTRc889p127dmnKlCnatGlTmuf99OnTatasmdq0aaN27drpm2++0aBBg1S5cmVFRETc8rkHnM4AyBFmzJhhJJlNmzbdsI23t7epXr26fXro0KHm2pfx2LFjjSRz4sSJG25j06ZNRpKZMWNGmmWhoaFGkpk6dWq6y0JDQ+3TK1euNJJM0aJFTUJCgn3+7NmzjSQzfvx4+7zg4GATGRl5y23eqLaUlBRTtmxZEx4eblJSUuzzz58/b0qWLGkefvjhGx6vMcbExsYaSWb48OHmxIkTJi4uzqxatcpUr17dSDJz5861b+96PXv2NHnz5jUXL140xhhz5coVU7JkSRMcHGxOnz6dps5UkZGRJl++fMYYY9atW2e8vLxM8+bN7du59hiudenSJVOpUiXTqFEj+7zNmzcbSaZ///4ObTt37mwkmaFDh9rndevWzQQEBJiTJ086tG3fvr3x9vZO9xivrT/1HPDz8zMdOnQwkyZNMgcOHEjTNvV8jY2NTXdbJ06cMMWLFzeVK1c2iYmJxhhj1q5daySZWbNmObRdsmRJuvOv9fvvvxtJpl+/fjdsc60FCxYYSWbkyJEO8x9//HFjs9nM3r177fMkGXd3d4dj+fDDD40k4+/v73B+Dx48OM1xpz5n7733nn1eUlKSqVatmvH19TWXLl0yxlw9d5KSkhzqOX36tPHz8zNdu3a1z0s9X728vMzx48cd2qcuS32NnD592kgy77zzzg2fi+PHjxs3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O1tubm6aN2+eatWqpZYtW+rXX3912KfNZnMYamz//v1asGCBwzZS/6G5vpYPPvggzTG0bdtWc+fOTXe811s9T3v27NHBgwfTzD9z5ow2bNigggUL3vDuamJioh577DEVLVpUM2fOTPcflXbt2ik5OVlvvPFGmmVXrly55Tk5dOhQGWPUqVOndM+DzZs3a+bMmZJk/7KOiRMnOrQZO3asbDZbln/q/8qVKw5jJV+6dEkffvihihQpoho1akhK/xzbuHGjNmzYcNv7PX/+vC5evOgwr3Tp0sqfP7/9Nd+kSRO5ublpwoQJDvuePn264uPj0x11A7iXcecWyGEWL16snTt36sqVKzp27JhWrFihZcuWKTg4WN9+++1NB3AfMWKE1qxZo+bNmys4OFjHjx/X5MmTVaxYMT344IOSrv7hK1CggKZOnar8+fMrX758qlOnTob696XHx8dHDz74oLp06aJjx45p3LhxKlOmjMNwZf/73//0zTffqFmzZmrXrp327dunzz//3KE/5q1q+/jjjxUREaH7779fXbp0UdGiRXX48GGtXLlSXl5e+u67726r/lT16tVTwYIFFRkZqb59+8pms+mzzz5LE1hdXFw0ZcoUtWzZUtWqVVOXLl0UEBCgnTt3avv27Vq6dGmabXt4eGjRokVq1KiRIiIitHr1alWqVEnNmzfX+++/r2bNmumpp57S8ePHNWnSJJUpU8ahf2ONGjXUtm1bjRs3Tv/++699KLDUO4PXBsnRo0dr5cqVqlOnjrp3766KFSvq1KlT2rJli3766ad0/wFK9fvvv+upp55SRESEHnroIfn4+Ojw4cOaOXOmjhw5onHjxt3wLevhw4frr7/+0pAhQ7Rw4UKHZaVLl1ZISIhCQ0PVs2dPjRo1SjExMWratKly586tPXv2aM6cORo/frwef/zxm/6OJk2apF69eql8+fIO31C2atUqffvttxo5cqQkqWXLlmrYsKFeffVV7d+/X1WrVtWPP/6ohQsXqn///mnOvTsVGBiot99+W/v371e5cuX09ddfKyYmRtOmTbMPs9WiRQvNmzdPjz32mJo3b67Y2FhNnTpVFStWTDesZ8Tu3bvVuHFjtWvXThUrVpSrq6vmz5+vY8eOqX379pKu3tEfPHiwhg8frmbNmqlVq1batWuXJk+erFq1ajl8eAywBOcM0gDgeqlD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Po0fP96+zrBhwzRz5kwtXLjQfnd91apV6XZLWL16tWrXri13d3cFBATo5Zdf1pUrV+zLw8LC1LdvX7300kvy8fGRv7+/Q33GGA0bNkzFixeXu7u7AgMD1bdv31v+jgBYA+EWgCUlJibq888/V5kyZbL07uV7772n6OhoffLJJ1q3bp1OnTql+fPn33SdmJgYNW7cWBUrVtSGDRu0bt06tWzZUsnJyZKkl156SXPnztXMmTO1ZcsWlSlTRuHh4Tp16pTDdl599VW99957+u233+Tq6qquXbtKutqV4qeffpIk/frrrzp69KiCgoLS1PH2229r1qxZmjFjhtavX6+EhAQtWLDgtp6HYcOG6bHHHtO2bdvUtWtXpaSkqFixYpozZ47++usvvf7663rllVc0e/ZsSdILL7ygdu3aOdxdr1evXprtHj58WI888ohq1aql33//XVOmTNH06dM1cuRIh3YzZ85Uvnz5tHHjRo0ZM0YjRozQsmXLJElz587V2LFj9eGHH2rPnj1asGCBPfwDsD7eBwJgGYsWLZKnp6ck6dy5cwoICNCiRYvk4pJ1/8ePGzdOgwcPVps2bSRJU6dO1dKlS2+6zpgxY1SzZk1NnjzZPu/++++31zllyhRFR0crIiJCkvTRRx9p2bJlmj59ul588UX7Om+++aZCQ0MlSS+//LKaN2+uixcvysPDwx7gixQpIn9//3Tr+OCDDzR48GA99thjkqSJEyfqhx9+uJ2nQU899ZS6dOniMG/48OH2n0uWLKkNGzZo9uzZateunTw9PeXh4aGkpKQb1idJkydPVlBQkCZOnCibzaby5cvryJEjGjRokF5//XX777JKlSoaOnSoJKls2bKaOHGili9frocfflgHDx6Uv7+/mjRpoty5c6t48eKqXbv2bR0ngHsPd24BWEbDhg0VExOjmJgY/frrrwoPD1dERIQOHDiQJduPj4/X0aNHVadOHfs8V1dX1axZ86brpd65Tc++fft0+fJl1a9f3z4vd+7cql27tnbs2OHQtkqVKvafAwICJEnHjx/PcO3Hjh1zCHm5cuVSjRo1MrT+9dI75kmTJqlGjRoqUqSIPD09NW3aNB08eDBT292xY4dCQkJks9ns8+rXr6/ExET9888/9nnXPhfS1ecj9bl44okndOHCBZUqVUrdu3fX/PnzHbo1ALA2wi0Ay8iXL5/KlCmjMmXKqFatWvr444917tw5ffTRR5Jkv+t3bR/ZO/kwVEZ5eHhkyXZy585t/zk1/KWkpGTJtlO5uLik6UOc3nOUL18+h+mvvvpKL7zwgrp166Yff/xRMTEx6tKliy5dupSl9aW69rmQrj4fqc9FUFCQdu3apcmTJ8vDw0O9evVSgwYN7srvGoDzEW4BWJbNZpOLi4suXLgg6epb9pJ09OhRe5vMjK/q7e2tgIAAbdy40T7vypUr2rx5803Xq1Klyg2H5CpdurTc3Ny0fv16+7zLly9r06ZNqlixYoZruxVvb2/5+fk5fFAtOTlZW7ZscWhXpEgRh+cnISFBsbGxt9z++vXrVa9ePfXq1UvVq1dXmTJltG/fPoc2bm5u9n7GN1KhQgVt2LDBIWCvX79e+fPnV7FixW5ZRyoPDw+1bNlSEyZM0KpVq7RhwwZt27Ytw+sDuHcRbgFYRlJSkuLi4hQXF6cdO3aoT58+SkxMVMuWLSVJZcqUUVBQkIYNG6Y9e/bo+++/13vvvZepffTr10+jR4/WggULtHPnTvXq1cth9IX0DB48WJs2bVKvXr30xx9/aOfOnZoyZYpOnjypfPny6bnnntOLL76oJUuW6K+//lL37t11/vx5devW7XafinT16dNHo0aN0sKFC7Vr1y7169dPp0+fdugC0KhRI3322Wdau3attm3bpsjISOXKleuW2y5btqx+++03LV26VLt379Zrr73mEKSlqyMx/PHHH9q1a5dOnjyZ7p3UXr166dChQ+rTp4927typhQsXaujQoRowYECG+05HR0dr+vTp+vPPP/X333/r888/l4eHh4KDgzO0PoB7Gx8oA2AZS5YssfdFzZ8/v8qXL685c+YoLCxM0tW3sr/88ks999xzqlKlimrVqqWRI0fqiSeeyPA+Bg4cqKNHjyoyMlIuLi7q2rWrHnvsMcXHx99wnXLlyunHH3/UK6+8otq1a8vDw0N16tRRhw4dJEmjR49WSkqKOnXqpLNnz6pmzZpaunSpChYsePtPRjoGDRqkuLg4PfPMM8qVK5d69Oih8PBwh/A6ePBgxcbGqkWLFvL29tYbb7yRoTu3PXv21NatW/Xkk0/KZrOpQ4cO6tWrlxYvXmxv0717d61atUo1a9ZUYmKiVq5cqRIlSjhsp2jRovrhhx/04osvqmrVqvLx8VG3bt00ZMiQDB9ngQIFNHr0aA0YMEDJycmqXLmyvvvuu7sy5i8A57OZjAzQCACwnJSUFFWoUEHt2rXTG2+84exyACBLcOcWAP4jDhw4oB9//FGhoaFKSkrSxIkTFRsbq6eeesrZpQFAlqHPLQD8R7i4uCg6Olq1atVS/fr1tW3bNv3000+qUKGCs0sDgCxDtwQAAABYBnduAQAAYBmEWwAAAFgG4RYAAACWQbgFAACAZRBuAQAAYBmEWwAAAFgG4RYAAACWQbgFAACAZfw/BMsbm9B7E3gAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Get the library sizes in MiB.\n",
"full_runtime_size = os.path.getsize(os.path.realpath('/usr/lib/x86_64-linux-gnu/libnvinfer.so')) / 1024 / 1024\n",
"lean_runtime_size = os.path.getsize(os.path.realpath('/usr/lib/x86_64-linux-gnu/libnvinfer_lean.so')) / 1024 / 1024\n",
"dispatch_runtime_size = os.path.getsize(os.path.realpath('/usr/lib/x86_64-linux-gnu/libnvinfer_dispatch.so')) / 1024 / 1024\n",
"\n",
"# Get the library + engine file sizes in MiB.\n",
"full_size = full_runtime_size + os.path.getsize('resnet50_full.plan') / 1024 / 1024\n",
"stripped_size = full_runtime_size + os.path.getsize('resnet50_stripped.plan') / 1024 / 1024\n",
"full_vc_size = lean_runtime_size + dispatch_runtime_size + os.path.getsize('resnet50_full_vc.plan') / 1024 / 1024\n",
"stripped_vc_size = lean_runtime_size + dispatch_runtime_size + os.path.getsize('resnet50_stripped.plan') / 1024 / 1024\n",
"\n",
"# Plot the distribution size comparison.\n",
"plt.figure(figsize=(8, 6))\n",
"plt.bar(['full', 'weight-stripped', 'full + VC', 'weight-stripped + VC'], [full_size, stripped_size, full_vc_size, stripped_vc_size], color=['blue', 'green', 'purple', 'red'])\n",
"plt.xlabel('Build configurations')\n",
"plt.ylabel('Size (MiB)')\n",
"plt.title('Distribute Package Size Comparison')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}