CINXE.COM
JetPack SDK | NVIDIA Developer
<!DOCTYPE html> <html lang='en' class='h-100'> <head> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="iJ0-xUqRnv_BHS2odOk6qqdj4HkkIOLZj4wkiuxyU2saSLYSkIYNfmxzLuGW2qhueyO-iEg4hO0U2qEkrQ6EUg" /> <meta name="csp-nonce" /> <title>JetPack SDK | NVIDIA Developer</title> <meta name="description" content="Builds end-to-end accelerated AI applications and supports edge AI development."> <meta name="keywords" content="jetpack sdk, ai application, edge ai, nvidia"> <link rel="canonical" href="https://developer.nvidia.com/embedded/jetpack"> <link rel="alternate" href="https://developer.nvidia.com/embedded/jetpack" hreflang="x-default"> <link rel="alternate" href="https://developer.nvidia.com/embedded/jetpack" hreflang="en-us"> <link rel="alternate" href="https://developer.nvidia.cn/embedded/jetpack" hreflang="zh-cn"> <link rel="alternate" href="https://developer.nvidia.com/ja-jp/embedded/jetpack" hreflang="ja-jp"> <meta property="og:site_name" content="NVIDIA Developer"> <meta property="og:title" content="JetPack SDK"> <meta property="og:description" content="Builds end-to-end accelerated AI applications and supports edge AI development."> <meta property="og:type" content="website"> <meta property="og:image" content="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/jetpack-sdk.jpg"> <meta property="og:url" content="https://developer.nvidia.com/embedded/jetpack"> <meta name="twitter:title" content="NVIDIA JetPack SDK"> <meta name="twitter:description" content="Builds end-to-end accelerated AI applications and provides full environment for hardware-accelerated edge AI development."> <meta name="twitter:image" content="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/jetpack-sdk.jpg"> <meta name="twitter:site" content="@NVIDIA"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@NVIDIAEmbedded"> <meta property="interest" content="Robotics"> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/application-850056c0e23225daee0fd1b592d57245911c990e3aefce82212f37ebf18d96de.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/one-trust-bea625cf16a072ce5fdb0707a19f2645daf63c05eb1a016db72773eba008fc07.css" /> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="3e2b62ff-7ae7-4ac5-87c8-d5949ecafff5"></script> <script type="text/javascript" src="https://images.nvidia.com/aem-dam/Solutions/ot-js/ot-custom.js"></script> <script> function OptanonWrapper() { let event = new Event('bannerLoaded'); window.dispatchEvent(event); if (window.OnetrustActiveGroups && window.OnetrustActiveGroups.includes("C0002")) { window.DD_RUM && window.DD_RUM.init({ clientToken: 'pub0430c74fae5d2b467bcb8d48b13e5b32', applicationId: '9fc963c7-14e6-403d-bdec-ee671550bb7f', site: 'datadoghq.com', service: 'devzone', env: 'production', version: '', sessionSampleRate: 10, sessionReplaySampleRate: 5, trackUserInteractions: true, trackResources: true, trackLongTasks: true, defaultPrivacyLevel: 'mask-user-input', }); } } </script> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/vars-cd3a0769a3c2f2d9ea6b83ac53ce86bceef4c719e4dbd22ed41d48d01f200901.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/fonts-910bdb814ac830981904d69eea803431bc3a5b00aac30ffc85d12983c6511741.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/ballistiq-twitterfeed-61a757e5494e5598582c3610822f4cc0d00c0f1c3d70d478b0004dcebebf2368.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/application-a780279f5932e2d3fe01da14ba98d5c320956ec365747dfca2719798ce778ae6.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/embedded/embedded-bde5659f6ab1dd4f9edcf851e8c12fb3c44ed2de1542a3bd9131d207afdb0d7d.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/overrides-cbc02aeca05448d7c77b2b63dc1faa3f5e58c17afd5afe4a5122591949c5d734.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/new-styles-37d9681cbab3b14d1c92fc036ceb563d8fc93f75cebcbc61a56cbeddc83154d7.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/feed-aggregator/feed-aggregator-9ace7521871242143cb35fa86d5be702c4dacb409600041fa6a5b14fa2a71dde.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/bootstrap-glyphicons-fe132ea5867b21620f37b392a53d872fb240e34ad8b477db370b6f867ccd102f.css" media="all" /> <script src="https://dirms4qsy6412.cloudfront.net/assets/horizontal-chart/d3.v4.min-41cfecdf7c41476e805de7afacf4aacdd1a4be6947fbecf95217e947ebc2faf5.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/horizontal-chart/visualize-d-06443fdef48364af6635f0d1d3535da26910671f6f6a680c531eff0e54ed595f.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/js.cookie.min-bd09df6e81cb21935c4e92d9631a162285611f17c6eaee720cafcc6ddef3f7dc.js"></script> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/sf-validation/sf-validation-805362e079494cd052f713be5f91a44eb602f545c342f794abbd4a8050c0acb3.css" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/tablefilter/tablefilter-ad35ad42b6d4f1068765cf691a0dcb4214ba7925ea4e28b9a1ce48a0ddb3d489.css" media="all" /> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/tablefilter/filtered-table-891467932064f1f3e379852c0697e014d6c0f99a6d423b4468e55ae59d159adf.css" media="all" /> <script src="https://assets.adobedtm.com/5d4962a43b79/c1061d2c5e7b/launch-191c2462b890.min.js" data-ot-ignore="true"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js" integrity="sha512-STof4xm1wgkfm7heWqFJVn58Hm3EtS31XFaagaa8VMReCXAkQnJZ+jEy8PCC/iT18dFy95WcExNHFTqLyp72eQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://api-prod.nvidia.com/search/nvidia-gallery-widget.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/devzone3/modules/nvidia_editor/nod_widgets-8c38a7d04ed3c3acd9117aa126bf76d7902d3c57c72b76dbf3c281c96ed09975.js"></script> <link rel="icon" type="image/x-icon" href="https://dirms4qsy6412.cloudfront.net/assets/favicon-81bff16cada05fcff11e5711f7e6212bdc2e0a32ee57cd640a8cf66c87a6cbe6.ico" /> </head> <body class='d-flex flex-column h-100' data-theme='devzone3_old'> <div id='header'></div> <div id="wrapper" class="page-embedded-jetpack" data-id="432"> <div id="content-background" class=""> <div class="separator"></div> <div id="content" class="container"> <div class="row"> <section class="dz3-main-section dz-old-theme node field-name-body"> <a id="main-content"></a> <style> .page-header { padding-bottom: 0px; } .list-xtra-padding>li { padding-bottom: .5em; } .page-header { padding-bottom: 0px; } .list-xtra-padding>li { padding-bottom: .5em; } .list-no-indent { padding-left: 1em; } /* BUTTON ROW SPACING */ .row-of-buttons { margin: 2em 0 1em 0; } .row-of-buttons button, .row-of-buttons a { margin: 0.35em 0.25em; } .row-of-buttons a:nth-child(1) { margin-left: 0; } .table-padded td { padding-left: 0.75em !important; } #jetpack-feature>.table tr>td h4:first-child { min-width: 6em; line-height: 1.5em; margin-top: 0.3em; } #jetpack-feature table.table tr td:nth-child(2) { padding-top: 1em; max-width: 40em; } /* box_ui_shadow UI */ .box_ui_shadow { margin-bottom: 1.5em; } .ui_shadow { box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); } .box_ui_shadow .row-of-buttons { margin-top: 0.5em; margin-left: -0.25em; margin-bottom: 0; } </style> <!-- <div class="text-white" style="background: rgba(0, 0, 0, 0) linear-gradient(rgb(153, 153, 153) 0%, rgb(102, 102, 102) 100%) repeat scroll 0% 0%; padding: 1em 0px;"> <div class="container"> <div class="col-12 text-center"> Learn how to build high-performance visual AI agents, from cloud to far edge, powered by vision language models. <a href="https://info.nvidia.com/build-visual-ai-agents-with-gen-ai-and-nvidia-nim.html?nvid=nv-int-unbr-646839" target="_blank" class="btn btn-success btn-sm m-0 ml-2 ">Register Now</a> </div> </div> </div> <br> <br> --> <div class="page-header"> <h1 class="title">JetPack SDK</h1> </div> <br> <div class="row"> <div class="col-md-12"> <p class="lead" style="margin-bottom: 0.5em;">NVIDIA JetPack SDK powering the Jetson modules is the most comprehensive solution for building end-to-end accelerated AI applications, significantly reducing time to market.</p> <p class="lead">NVIDIA JetPack includes 3 components: </p> <p class="lead"><i><b>Jetson Linux</b></i>: A Board Support Package (BSP) with bootloader, Linux kernel, Ubuntu desktop environment, NVIDIA drivers, toolchain and more. It also includes security and Over-The-Air (OTA) features.</p> <p class="lead"><i><b>Jetson AI Stack</b></i>: CUDA Accelerated AI stack which includes a complete set of libraries for acceleration of GPU computing, multimedia, graphics, and computer vision. It supports application frameworks such as <a href="https://www.nvidia.com/en-us/autonomous-machines/intelligent-video-analytics-platform/" target="_blank">Metropolis</a> to build, deploy and scale Vision AI application, <a href="/isaac" target="_blank">Isaac</a> for building high performance robotic applications and <a href="https://www.nvidia.com/en-us/clara/holoscan/" target="_blank">Holoscan</a> for building high performance computing applications (HPC) with real time insights and sensor processing capabilities from edge to cloud.</p> <p class="lead"><i><b>Jetson Platform Services</b></i>: A collection of ready to use services to accelerate AI application development on Jetson.</p> </div> <div id="jetpack-6-0" class="col-md-10"> <h3><b>JetPack 6</b></h3> <p>JetPack 6 is the biggest upgrade ever. It not only brings an updated Kernel and updated Ubuntu root file system but also includes novel features never before available on Jetson. JetPack 6 brings the flexibility to run any Linux Kernel and offers wider options of Linux based distros from Jetson ecosystem partners. It also includes the flexibility to update Jetson AI Stack without updating Jetson Linux BSP. </p> <h3><b>JetPack 6.2</b></h3> <hr> <p>JetPack 6.2 is the latest production release of JetPack 6. This release includes Jetson Linux 36.4.3, featuring the Linux Kernel 5.15 and an Ubuntu 22.04-based root file system. The Jetson AI stack packaged with JetPack 6.2 includes CUDA 12.6, TensorRT 10.3, cuDNN 9.3, VPI 3.2, DLA 3.1, and DLFW 24.0. JetPack 6.2 supports new high-power Super Mode for NVIDIA Jetson Orin Nano and Jetson Orin NX production modules. With Super Modes, the Jetson Orin NX series achieves up to a 70% increase in AI TOPS, while the Jetson Orin Nano series delivers comparable AI TOPS improvements alongside a 50% boost in memory bandwidth. The improved performance delivers up to 2x higher generative AI inference performance on Jetson Orin modules. Learn more about performance boots with JetPack 6.2 in our latest <a href="https://developer.nvidia.com/blog/nvidia-jetpack-6-2-brings-super-mode-to-nvidia-jetson-orin-nano-and-jetson-orin-nx-modules/" target="_blank">blog</a>. </p> <p>Note: To use the compute stack of JetPack 6.2 on Jetson Linux 36.3, please refer to the <a href="https://docs.nvidia.com/jetson/jetpack/install-setup/index.html#upgradable-compute-stack" target="_blank">NVIDIA JetPack SDK documentation</a>.</p> </div> <div class="col-md-12"> <h3><b>Installing JetPack</b></h3> <!--<div class="col-md-6"> <div class="ui_shadow"> <div class="panel panel-default" style="margin-bottom: 0;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseJetsonagxorin" class="collapsed" aria-expanded="false"> JETSON AGX ORIN DEVELOPER KIT > </a> </h5> </div> <div class="panel-collapse collapse" id="collapseJetsonagxorin" aria-expanded="false" style="border-top: 1px solid #eee"> <div class="panel-body"> <p><small>Follow the steps at <a href="/embedded/learn/get-started-jetson-agx-orin-devkit" target="_blank">Getting Started with Jetson AGX Orin Developer Kit.</a></small></p> </div> </div> </div> </div> <div class="panel panel-default" style="margin-bottom: 1.25em;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseJetsonorin" class="collapsed" aria-expanded="false"> FOR ANY JETSON ORIN OR XAVIER DEVELOPER KIT > </a> </h5> </div> <div class="panel-collapse collapse" id="collapseJetsonorin" aria-expanded="false" style="border-top: 1px solid #eee"> <div class="panel-body"> <p><small>Refer to the <a href="https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html" target="_blank">JetPack documentation</a> for instructions.</small></p> </div> </div> </div> </div> </div> </div> --> </div> <div class="col-md-6"> <h5 style="font-size:16px;">SD Card Image Method for Jetson Orin Nano Developer Kit</h5> <div class="ui_shadow"> <div class="panel panel-default" style="margin-bottom: 0;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseJetsonagxorin" class="collapsed" aria-expanded="false"> For Jetson Orin Nano Developer Kit currently running JetPack 6.x </a> </h5> </div> <div class="panel-collapse collapse" id="collapseJetsonagxorin" aria-expanded="false" style="border-top: 1px solid #eee"> <div class="panel-body"> <div style="margin-bottom: 0.5em;"> <a class="btn btn-default btn-xs" href="/downloads/embedded/l4t/r36_release_v4.3/jp62-orin-nano-sd-card-image.zip"> Download JetPack 6.2 SD card image for Jetson Orin Nano Developer Kit </a> <br><br> <p> Follow the instructions provided in <a href="/embedded/learn/get-started-jetson-orin-nano-devkit">Getting Started Guide</a></p> </div> </div> </div> </div> </div> </div> <br><br> <div class="ui_shadow"> <div class="panel panel-default" style="margin-bottom: 1.25em;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseJetsonorin" class="collapsed" aria-expanded="false"> For other Jetson Orin Nano Developer Kit (fresh unboxed unit or existing unit currently running JetPack 5.x) </a> </h5> </div> <div class="panel-collapse collapse" id="collapseJetsonorin" aria-expanded="false" style="border-top: 1px solid #eee"> <div class="panel-body"> <p style="margin-bottom: 0.5em"> The factory-installed firmware on the Jetson Orin Developer Kit supports JetPack 5.x and requires an update to ensure compatibility with JetPack 6.x. <br><br> Update the firmware by following the instructions in the <a href="https://www.jetson-ai-lab.com/initial_setup_jon.html" target="_blank"> Initial Setup Guide for Jetson Orin Nano Developer Kit</a> before installing JetPack 6.2. </p> </div> </div> </div> </div> </div> <!-- <div class="ui_shadow"> <div class="panel panel-default" style="margin-bottom: 0;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseJetsonXavierNX" class="collapsed" aria-expanded="false"> Jetson Orin Nano Developer Kit </a> </h5> </div> <div class="panel-collapse collapse" id="collapseJetsonXavierNX" aria-expanded="false" style="border-top: 1px solid #eee"> <div class="panel-body"> <div style="margin-bottom: 0.5em;"> <a class="btn btn-default btn-xs" href="/downloads/embedded/l4t/r36_release_v4.3/jp62-orin-nano-sd-card-image.zip"> Download for Jetson Orin Nano </a> <hr> <a class="btn btn-default btn-xs" href="/downloads/embedded/l4t/r35_release_v4.1/jp512-xnx-sd-card-image.zip">JETSON XAVIER NX DEVELOPER KIT</a> </div> <p style="margin-bottom: 0.5em"> <small><b>Jetson Orin Nano Developer Kit Users</b>: <br> If you were previously using JetPack 5 on your Jetson Orin Nano Developer Kit and want to upgrade to JetPack 6 without using any host machine, please follow the instructions provided in <a href="https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/FlashingSupport.html#updating-jetson-orin-nano-devkit-from-jetpack-5-to-jetpack-6" target="_blank">Jetson Linux documentation</a>.<br> See <a href="/embedded/learn/get-started-jetson-orin-nano-devkit" target="_blank">Getting Started Guide</a> for instructions on flashing the SD-card and first-boot. </small> </p> </div> </div> </div> </div> </div>--> </div> <div class="col-md-6"> <h5 style="font-size:16px;">NVIDIA SDK Manager Method</h5> <div class="panel panel-default ui_shadow" style="margin-bottom: 1em;"> <div class="inside"> <div class="panel-heading"> <h5 style="font-size:14px; text-transform: uppercase; margin: 0.75em 0 0.25em 0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseAllJetson" class="collapsed" aria-expanded="false"> For any Jetson Orin Developer Kit </a> </h5> </div> <div class="panel-collapse collapse" id="collapseAllJetson" aria-expanded="false" style="border-top: 1px solid #eee;"> <div class="panel-body"> <div style="margin-bottom: 0.5em;"> <a class="btn btn-default btn-xs" href="/nvidia-sdk-manager"> Download NVIDIA SDK Manager </a> </div> <!--<p><small>With JetPack 5.1.1, SDK Manager offers the option of either a full installation of JetPack, or the installation of only JetPack runtime components. The JetPack runtime installation does not include samples or documentation and takes only half the storage as a full JetPack installation.</small></p> <p class="small">Use of SDK Manager to flash Jetson requires an x86 computer running Ubuntu 20.04 or Ubuntu 18.04.</p>--> <p class="small" style="margin-bottom: 0.5em"> Follow the steps at <a href="https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html" target="_blank">Install Jetson Software with SDK Manager</a>. </p> <p><small>Note: Select JetPack 6.1 (rev. 1) during installation to get the boosted performance. Once JetPack is installed, select MAXN mode for the upgraded performance.</small></p> </div> </div> </div> </div> </div> <h5 style="font-size:16px; margin-top: 7px">Debian Package Method</h5> <p>JetPack can be installed or upgraded using a Debian package management tool running on Jetson. NVIDIA also hosts runtime and development debian meta packages for all JetPack components. The runtime packages do not include samples and documentations while the development packages include these and are intended for development. Users can install full JetPack or only runtime JetPack components over Jetson Linux.</p> <p>Please refer to <a href="https://docs.nvidia.com/jetson/archives/jetpack-archived/jetpack-61/install-setup/index.html#package-management-tool" target="_blank">JetPack documentation for instructions</a> on the list of debian packages we host. To install Jetpack on top of Jetson Linux 36.4, all you need to do is “apt install nvidia-jetpack</p> <div class="col-md-10"> <h4 style="font-size:16px;">More Resources</h4> <ul class="list-no-indent"> <li><a href="https://docs.nvidia.com/jetson/" target="_blank">Jetson Software Documentation</a></li> <li><a href="https://docs.nvidia.com/jetson/archives/jetpack-archived/jetpack-62/release-notes/index.html" target="_blank">JetPack 6.2 Release Notes and Documentation</a></li> <li><a href="https://docs.nvidia.com/jetson/archives/r36.4.3/ReleaseNotes/Jetson_Linux_Release_Notes_r36.4.3.pdf" target="_blank">Jetson Linux 36.4.3 Release Notes</a></li> <li><a href="https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/index.html" target="_blank">Jetson Linux Developer Guide</a></li> <li><a href="/embedded/learn/jetson-agx-orin-devkit-user-guide/index.html" target="_blank">Jetson AGX Orin Developer Kit User Guide</a></li> <li><a href="/embedded/learn/jetson-orin-nano-devkit-user-guide/index.html" target="_blank">Jetson Orin Nano Developer Kit User Guide</a></li> </ul> </div> <div id="jetpack-features" class="col-md-10"> <h3>Key Features in JetPack 6.2</h3> <table class="table"> <tbody> <tr> <td> <h3 style="font-size:20px"><b>Jetson Linux</b></h3> </td> <td> <p>NVIDIA <a href="/embedded/jetson-linux-r3643" target="_blank">Jetson Linux 36.4.3</a> provides the Linux Kernel 5.15, UEFI based bootloader, Ubuntu 22.04 based root file system, NVIDIA drivers, necessary firmwares, toolchain and more.</p> <p><strong>JetPack 6.2 includes Jetson Linux 36.4.3 with following highlights: <br> <i>(Please refer to <a href="https://docs.nvidia.com/jetson/archives/r36.4.3/ReleaseNotes/Jetson_Linux_Release_Notes_r36.4.3.pdf" target="_blank">release notes</a> for additional details)</i> </strong></p> <ul class="list-xtra-padding list-no-indent"> <li> Support for new reference power modes for <a href="https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/" target="_blank">Jetson Orin Nano</a> and <a href="https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/" target="_blank">Jetson Orin NX</a> production modules delivering up to 2x generative AI performance (available with new flashing configuration) <ul> <li>NVIDIA Jetson Orin Nano 4GB: Now supports 10W, 25W and MAXN SUPER</li> <li>NVIDIA Jetson Orin Nano 8GB: Now supports 15W, 25W and MAXN SUPER</li> <li>NVIDIA Jetson Orin NX 8GB: Now supports 10W, 15W, 20W, 40W and MAXN SUPER</li> <li>NVIDIA Jetson Orin NX 16GB: Now supports 10W, 15W, 25W, 40W and MAXN SUPER</li> </ul> </li> <li>CVE and minor bug fixes</li> </ul> <p><small>NOTE: The MAXN SUPER is an uncapped power mode that allows the highest number of cores and clock frequency for CPU, GPU, DLA, PVA, and SOC engines. If the total module power exceeds the Thermal Design Power (TDP) budget in this mode, the module is throttled to lower frequency, which delivers lower performance while staying within the thermal budget. It is strongly recommended to build your own custom power mode to find the right balance between power consumption (or thermal stability) and performance for your application and needs.</small></p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Jetson Platform Services</b></h3> </td> <td> <p><a href="/embedded/jetpack/jetson-platform-services-get-started">Jetson Platform Services</a> is a collection of pre-built and cloud-native software services and reference workflows to accelerate AI applications on Jetson. These services are modular, API-driven and can be quickly configured to build Generative AI and other edge applications. There are 15+ services from AI services to system services. The services include:</p> <ul> <li>AI Perception Service using DeepStream</li> <li>AI Inference Service for Visual Language Model (VLM)</li> <li>AI Analytics - to process metadata to time-series insights</li> <li>Sensor Management and Storage with VST</li> <li>Redis Message Bus</li> <li>API and IoT Gateway</li> </ul> <p>To demonstrate the capabilities of these services, following reference workflows are included:</p> <ul> <li>AI-NVR - complete workflow for AI-based Network video recorder </li> <li>Generative AI workflow for alerting and visual chat</li> <li>Generative AI workflow for zero-shot detection. </li> </ul> <p>JetPack 6.2 supports <a href="https://docs.nvidia.com/jetson/jps/moj-Releasenotes.html" target="_blank">Jetson Platform Services 2.0</a>.</p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Linux Distros on Jetson</b></h3> </td> <td> <p>JetPack includes Jetson Linux out of the box, but Jetson ecosystem partners offer various Linux based Distros on Jetson. They include:</p> <p><a href="https://ubuntu.com/download/nvidia-jetson" target="_blank">Canonical Ubuntu</a>: Ubuntu 22.04 offered by Canonical. Please refer to this <a href="https://info.nvidia.com/ubuntu-on-nvidia-jetson.html?ondemandrgt=yes#" target="_blank">webinar</a> to learn more about Canonical offering on Jetson.</p> <p> <a href="https://developers.redhat.com/learn/rhel/install-red-hat-device-edge-nvidia-jetson-orin-and-igx-orin" target="_blank"> Red Hat </a>: Red Hat Enterprise Linux 9.4 offered by Red Hat</p> <p><a href="https://www.windriver.com/products/linux/nvidia" target="_blank">Windriver Linux</a>: Commercial embedded Linux OS from Windriver.</p> <p><a href="https://www.suse.com/releasenotes/aarch64/SUSE-SLES/15-SP5/index.html#arm64-soc" target="_blank">SUSE</a>: SUSE Linux Enterprise Server (SLES) offered by SUSE.</p> <p><a href="https://concurrent-rt.com/products/software/redhawk-linux" target="_blank">RedHawk</a>: Real Time Linux OS from Concurrent Real-Time for mission critical hard real time applications.</p> <p>Yocto based distros: Various Yocto based distros and services leveraging <a href="https://github.com/OE4T/meta-tegra" target="_blank">meta-tegra</a> are offered by ecosystem partners like <a href="https://www.balena.io/os" target="_blank">Balena</a>, <a href="https://foundries.io/products/software-stack/" target="_blank">Foundries.io</a> & <a href="https://www.timesys.com/solutions/development-support/processors/nvidia/" target="_blank">TimeSys</a>. </p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>TensorRT</b></h3> </td> <td> <p><a href="/tensorrt">TensorRT</a> is a high performance deep learning inference runtime for image classification, segmentation, and object detection neural networks. TensorRT is built on CUDA, NVIDIA’s parallel programming model, and enables you to optimize inference for all deep learning frameworks. It includes a deep learning inference optimizer and runtime that delivers low latency and high-throughput for deep learning inference applications.</p> <p><strong>JetPack 6.2 includes <a href="https://docs.nvidia.com/deeplearning/tensorrt/release-notes/#rel-10-3-0"> TensorRT 10.3.0</a> </strong> </p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>DLA</b></h3> </td> <td> <p><a href="/deep-learning-accelerator">NVIDIA DLA</a> hardware is a fixed-function accelerator engine targeted for deep learning operations. It’s designed to do full hardware acceleration of convolutional neural networks, supporting various layers such as convolution, deconvolution, fully connected, activation, pooling, batch normalization, and others</p> <p>DLA software consists of the DLA compiler and the DLA runtime stack. The offline compiler translates the neural network graph into a DLA loadable binary and can be invoked using NVIDIA TensorRT™. The runtime stack consists of the DLA firmware, kernel mode driver, and user mode driver.</p> <p><strong>JetPack 6.2 includes DLA 3.14 </strong></p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>cuDNN</b></h3> </td> <td> <p><a href="/cudnn">CUDA Deep Neural Network</a> library provides high-performance primitives for deep learning frameworks. It provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers.</p> <p><strong>JetPack 6.2 includes <a href="https://docs.nvidia.com/deeplearning/cudnn/latest/release-notes.html#cudnn-9-3-0"> cuDNN 9.3.0</a> </strong> </p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>CUDA</b></h3> </td> <td> <p>CUDA Toolkit provides a comprehensive development environment for C and C++ developers building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing the performance of your applications.</p> <p><strong>JetPack 6.2 includes <a href="https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html">CUDA 12.6.10</a></strong> </p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Multimedia API</b></h3> </td> <td> <p>The <a href="https://docs.nvidia.com/jetson/l4t-multimedia/index.html" target="_blank">Jetson Multimedia API</a> package provides low level APIs for flexible application development. </p> <p>Camera application API: libargus offers a low-level frame-synchronous API for camera applications, with per frame camera parameter control, multiple (including synchronized) camera support, and EGL stream outputs. RAW output CSI cameras needing ISP can be used with either libargus or GStreamer plugin. In either case, the V4L2 media-controller sensor driver API is used.</p> <p>Sensor driver API: V4L2 API enables video decode, encode, format conversion and scaling functionality. V4L2 for encode opens up many features like bit rate control, quality presets, low latency encode, temporal tradeoff, motion vector maps, and more.</p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Computer Vision</b></h3> </td> <td> <p><a href="/embedded/vpi">VPI (Vision Programing Interface)</a> is a software library that provides Computer Vision / Image Processing algorithms implemented on multiple hardware accelerators found on Jetson such as PVA (Programmable Vision Accelerator), GPU, NVDEC(NVIDIA Decoder), NVENC (NVIDIA Encoder), VIC (Video Image Compositor) and so on.</p> <p><b>JetPack 6.2 includes <a href="https://docs.nvidia.com/vpi/release_notes.html">VPI 3.2</a> with following highlights:</b> </p> <ul> <li>New Algorithms: <ul> <li><b>AprilTag Detector and Pose Estimator</b> supporting PVA and CPU backends.</li> <li><b>Dynamic Remap</b> supporting CUDA backend for generic geometrical transformations.</li> <li><b>Recursive Gaussian Filter</b> supported on CPU and CUDA backend providing superioru performance compared to colvolution Gaussian Filter for large sigma</li> </ul> </li> <li>New <b>PVA backend support for following</b> algorithms : <ul> <li><b>Mix Channels</b></li> <li><b>Crop Scaler</b></li> <li><b>ORB feature detector</b> (Descriptor Extractor only).</li> <li><b>Pyramidal LK Optical Flow</b></li> </ul> </li> <li>Up-to 5X speed up of PVA backends</li> </ul> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Graphics</b></h3> </td> <td> <p>JetPack 6.2 includes the following graphics libraries:</p> <ul> <li>Vulkan® 1.3 <ul> <li><a href="https://www.khronos.org/blog/vulkan-1.3-and-roadmap-2022" target="_blank">Vulkan 1.3 Announcement</a></li> </ul> </li> <li> <a href="https://www.khronos.org/vulkansc/" target="_blank">Vulkan® SC 1.0</a> <ul> <li>Vulkan SC is a low-level, deterministic, robust API that is based on Vulkan 1.2. This API enables state-of-the-art GPU-accelerated graphics and computation that can be deployed in safety-critical systems and that are certified to meet industry functional safety standards. Refer to <a href="https://www.khronos.org/vulkansc/" target="_blank">https://www.khronos.org/vulkansc/</a> for more information. </li> <li>Vulkan SC can also be invaluable for real-time non safety critical embedded applications. Vulkan SC increases determinism and reduces application size by shifting preparation of the run-time application environment either offline, or into application setup, as much as possible. This includes offline compilation of graphics pipelines that define how the GPU processes data, together with static memory allocation, that together enable detailed GPU control that can be rigorously specified and tested.</li> <li>Vulkan SC 1.0 is evolved from Vulkan 1.2 and includes: the removal of runtime functionality that is not needed in safety-critical markets, an updated design to provide predictable execution times and results, and clarifications to remove potential ambiguity in its operation. For more details see <a href="https://www.khronos.org/blog/vulkan-sc-overview" target="_blank">https://www.khronos.org/blog/vulkan-sc-overview</a> </li> <li> <b>Note</b>: Jetson support for Vulkan SC is <b>not</b> safety certified. </li> </ul> </li> <li>OpenWF™ Display 1.0 <ul> <li>OpenWF Display is a Khronos API for low overhead interaction with the native display driver on Jetson and allows interaction with Vulkan SC to display images. </li> <li> <b>Note</b>: Jetson support for OpenWF Display is <b>not</b> safety certified. </li> </ul> </li> <li> OpenGL 4.6 <ul> <li>OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering. </li> </ul> </li> <li> OpenGLES 3.2 <ul> <li>OpenGLES is a cross-platform API for rendering advanced 2D and 3D graphics on embedded and mobile systems - including consoles, phones, appliances and vehicles. It consists of a well-defined subset of desktop OpenGL suitable for low-power devices, and provides a flexible and powerful interface between software and graphics acceleration hardware. </li> </ul> </li> <li>GLX 1.4 <ul> <li>GLX (initialism for "OpenGL Extension to the X Window System") is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. It enables programs wishing to use OpenGL to do so within a window provided by the X Window System. </li> </ul> </li> <li> EGL 1.5 <ul> <li>Embedded Graphics Library (EGL) is an interface between the Khronos rendering APIs, such as OpenGL ES, and the underlying native platform window system. It handles graphics context management, surface/buffer binding, rendering synchronization, and enables high-performance, accelerated, mixed-mode 2D and 3D rendering by using other Khronos APIs. </li> </ul></li> </ul> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Nsight Developer Tools</b></h3> </td> <td> <p>CUDA Toolkit provides a comprehensive development environment for C and C++ developers building high-performance GPU-accelerated applications with CUDA libraries. The toolkit includes <a href="/nsight-visual-studio-code-edition" target="_blank">Nsight Visual Studio Code Edition</a>, <a href="https://docs.nvidia.com/cuda/nsightee-plugins-install-guide/index.html" target="_blank">Nsight Eclipse Plugins</a>, debugging and profiling tools including <a href="/nsight-compute" target="_blank">Nsight Compute</a>, and a toolchain for cross-compiling applications</p> <p><a href="/nsight-systems" target="_blank">NVIDIA Nsight Systems</a> is a low overhead system-wide profiling tool, providing the insights developers need to analyze and optimize software performance.</p> <p><a href="/nsight-graphics" target="_blank">NVIDIA Nsight Graphics</a> is a standalone application for debugging and profiling graphics applications.</p> <p><a href="/nsight-dl-designer" target="_blank">NVIDIA Nsight Deep Learning Designer</a> is an integrated development environment that helps developers efficiently design and develop deep neural networks for in-app inference.</p> <p><a href="/nsight-perf-sdk" target="_blank">Nvidia Nsight Perf SDK</a> is a graphics profiling toolbox for Vulkan and OpenGL enabling the collection of GPU performance metrics directly from user application.</p> <p>Nsight System, Nsight Graphics, Nsight Compute, Nsight Perf SDK are all supported on Jetson Orin modules to assist development for autonomous machines.</p> <p><strong>JetPack 6.2 includes NVIDIA Nsight Systems v2024.5</strong></p> <p><strong>JetPack 6.2 includes NVIDIA Nsight Graphics 2024.2</strong></p> <p><strong>JetPack 6.2 includes NVIDIA Nsight Compute v2023.2 as part of the CUDA Toolkit 12.2</strong></p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Supported SDKs and Tools</b></h3> </td> <td> <p><a href="/deepstream-sdk" target="_blank">NVIDIA DeepStream SDK</a> is a complete analytics toolkit for AI-based multi-sensor processing and video and audio understanding.</p> <p><b>JetPack 6.2 supports DeepStream 7.1</b></p> <hr> <p><a href="/isaac-ros" target="_blank">NVIDIA Isaac™ ROS</a> is a collection of hardware-accelerated packages that make it easier for ROS developers to build high-performance solutions on NVIDIA hardware including NVIDIA Jetson.</p> <p><b>JetPack 6.2 will support Isaac ROS 3.2 in Jan '25</b></p> <hr> <p><a href="/holoscan-sdk" target="_blank">NVIDIA Holoscan</a> is a sensor processing platform that streamlines the development and deployment of AI and high-performance computing (HPC) applications for real-time insights</p> <p><b>JetPack 6.2 will support <a href="https://docs.nvidia.com/holoscan/sdk-user-guide/index.html" target="_blank">Holoscan SDK 2.9</a></b></p> <p><small>NOTE: Holoscan SDK 2.9 will be available in Jan ‘25 on JetPack 6.2.</small></p> <hr> <p><a href="https://github.com/triton-inference-server/server/blob/main/docs/jetson.md" target="_blank">NVIDIA Triton™ Inference Server</a> simplifies deployment of AI models at scale. Triton Inference Server is open source and supports deployment of trained AI models from NVIDIA TensorRT, TensorFlow and ONNX Runtime on Jetson. On Jetson, Triton Inference Server is provided as a shared library for direct integration with C API.</p> <p><a href="https://jetson-tools.nvidia.com/" target="_blank">PowerEstimator</a> is a webapp that simplifies creation of custom power mode profiles and estimates Jetson module power consumption. We have updated the Power Estimator tool with new power modes available with JetPack 6.2.</p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Cloud Native</b></h3> </td> <td> <p>Jetson brings <a href="/embedded/jetson-cloud-native" target="_blank">Cloud-Native</a> to the edge and enables technologies like containers and container orchestration. NVIDIA JetPack includes NVIDIA Container Runtime with Docker integration, enabling GPU accelerated containerized applications on Jetson platform. </p> <p>NVIDIA hosts several container images for Jetson on <a href="https://ngc.nvidia.com/catalog/containers?orderBy=modifiedDESC&pageNumber=0&query=%20label%3A%22Jetson%22&quickFilter=containers&filters=" target="_blank">NVIDIA NGC</a>. Some are suitable for software development with samples and documentation and others are suitable for production software deployment, containing only runtime components. Find more information and a list of all container images at the <a href="/embedded/jetson-cloud-native" target="_blank">Cloud-Native on Jetson page</a>. </p> </td> </tr> <tr> <td> <h3 style="font-size:20px"><b>Security</b></h3> </td> <td> <p>NVIDIA Jetson modules include various security features including Hardware Root of Trust, Secure Boot, Hardware Cryptographic Acceleration, Trusted Execution Environment, Disk and Memory Encryption, Physical Attack Protection and more. Learn about the security features by jumping to the security section of the <a href="https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/index.html" target="_blank">Jetson Linux Developer guide</a>.</p> <p><b>JetPack 6.2 Security Highlights include:</b></p> <ul> <li>Support for Firmware-based Trusted Platform Module (fTPM) on the T234 platform. Refer to the <a href="https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/SD/Security.html" target="_blank">security page</a> for all security features.</li> </ul> </td> </tr> </tbody> </table> </div> <div id="jetpack-docs" class="col-md-10"> <h3>JetPack Documentation and Webinars</h3> <table class="table"> <tbody> <tr> <td> <h4 style="font-size:20px">Documentation</h4> </td> <td> <ul class="list-xtra-padding list-no-indent"> <li>For a list of samples and documentation, see the <a href="https://docs.nvidia.com/jetson/jetpack/index.html" target="_blank">JetPack documentation</a> </li> <li>See the <a href="/embedded/community/support-resources" target="_blank">Jetson Support Resources</a> page for links to hardware as well as software documentation</li> </ul> </td> </tr> <tr> <td> <h4 style="font-size:20px">Webinars</h4> </td> <td> <ul class="list-xtra-padding list-no-indent"> <li><a href="https://info.nvidia.com/nvidia-jetpack6-webinar.html" target="_blank">JetPack 6 Webinar series</a></li> <li> <a href="https://www.nvidia.com/gtc/session-catalog/?tab.day=20220321&search=Jetson#/session/1639785308261001HENk" target="_blank">NVIDIA Jetson Software: Bringing NVIDIA Accelerated Technologies to the Edge</a> </li> </ul> </td> </tr> <tr> <td> <h4 style="font-size:20px">Support</h4> </td> <td> <ul class="list-xtra-padding list-no-indent"> <p>Visit the <a href="https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/70" target="_blank">NVIDIA Jetson forum</a> for all your questions and issues. NVIDIA has a dedicated team of Jetson experts to support you.</p> </ul> </td> </tr> </tbody> </table> </div> </div> <hr> <p class="lead"> <strong>For older versions of JetPack, please visit the <a href="/embedded/jetpack-archive">JetPack Archive</a>.</strong> </p> </section> <aside id="right" class="" role="complementary"> </aside> <!-- /#sidebar-second --> </div> </div> <div class="separator"></div> </div> <div class="white-background"> <div class="separator"></div> <div class="container"> <div class="row"> <div id="pre_footer_left" class="col-xs-12 col-sm-12 col-lg-6"> </div> <div id="pre_footer_right" class="col-xs-12 col-sm-12 col-lg-6"> </div> </div> <div class="separator"></div> </div> </div> </div> <div id='footer' class='mt-auto'></div> <script src="https://dirms4qsy6412.cloudfront.net/assets/feed-aggregator/feed-aggregator-7f147443abc2d1300a239c29e4ba3ca0d0d2eb0dc66b608765e2b3be50e18e10.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/devzone3/old/dist/dz3-old-bundle-f911ee7c2f8b7dd419510ab33721b4c4fbd7b17dfbdac32b2586ccd2c3480c2e.js"></script> <script> const template = document.createElement('template'); template.innerHTML = ` <style> @import "https://dirms4qsy6412.cloudfront.net/assets/feed-aggregator/feed-aggregator-9ace7521871242143cb35fa86d5be702c4dacb409600041fa6a5b14fa2a71dde.css"; .feed-aggregator-component .card { box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3) !important; } .feed-aggregator-component .card:hover { box-shadow: 0 0 8px 0 rgba(0,0,0,0.13), 0 14px 32px 5px rgba(0,0,0,0.13) !important; } </style> <div class="feed-aggregator-component"></div> `; const hosts = { 'en': 'https://developer.nvidia.com/blog', 'cn': 'https://developer.nvidia.com/zh-cn/blog', } class FeedAggregatorElement extends HTMLElement { constructor() { super(); this._shadowRoot = this.attachShadow({ 'mode': 'open' }); this._shadowRoot.appendChild(template.content.cloneNode(true)); } connectedCallback() { const categories = this.getAttribute('categories'); const tags = this.getAttribute('tags'); const perPage = this.getAttribute('per-page'); const excludedTags = this.getAttribute('excluded-tags'); let locale = this.getAttribute('locale'); if (!locale) { locale = 'en'; } let targetElement = this._shadowRoot.querySelector(".feed-aggregator-component"); let feed = { id: 'blog', host: hosts[locale], type: 'json', minCount: 2, }; if (categories && categories !== 'all') { feed['category_ids'] = categories.split(','); } if (tags && tags !== 'all') { feed['tag_ids'] = tags.split(','); } if(excludedTags && excludedTags !== 'null'){ feed['excluded_tag_ids'] = excludedTags.split(','); } document.addEventListener("DOMContentLoaded", function () { new FeedAggregator({ target: targetElement, props: { count: perPage, openInNewTab: true, showExcerpts: true, feeds: [feed] } }); }) } } window.customElements.define('feed-aggregator', FeedAggregatorElement); </script> <template id='application-button-template'> <style> @import "https://dirms4qsy6412.cloudfront.net/assets/application-button/application-button-68ca7e1e3aa49ec79169d49226e34ee0c341d27a15a38b28ce975cb2467e123e.css"; </style> <a href='' class='nvidia-application-button'>Join now</a> </template> <script> async function fetchMembershipState () { const userInfo = await fetch('/api/user'); const {status} = userInfo; if (status === 401) { let error = new Error('Unauthorized'); error.statusCode = status; throw error; } // TODO: Figure out how to get DZ4 program // Fetch page info. const {pathname} = location; const pageInfo = await fetch(`${pathname}.json`); const pageData = await pageInfo.json(); // Fetch membership info return pageData; } const initApplicationButton = (element) => { const linkElement = element.querySelector('a'); fetchMembershipState() .then(data => { console.log(data); }) .catch(error => { switch (error.statusCode) { default: linkElement.innerHTML = 'Login'; linkElement.href = '/login'; } }); }; class NvidiaApplicationButton extends HTMLElement { constructor() { const template = document.getElementById('application-button-template'); super(); this._shadowRoot = this.attachShadow({ 'mode': 'open' }); this._shadowRoot.appendChild(template.content.cloneNode(true)); } connectedCallback() { const element = this._shadowRoot; document.addEventListener('DOMContentLoaded', () => { initApplicationButton(element); }); } } window.customElements.define('nv-application-button', NvidiaApplicationButton); </script> <template id='application-text-template'> <p></p> </template> <script> class NvidiaApplicationText extends HTMLElement { constructor() { const template = document.getElementById('application-text-template'); super(); this._shadowRoot = this.attachShadow({ 'mode': 'open' }); this._shadowRoot.appendChild(template.content.cloneNode(true)); } connectedCallback() { } } window.customElements.define('nv-application-text', NvidiaApplicationText); </script> <template id='nv-sf-form-validator-template'> <script src="https://dirms4qsy6412.cloudfront.net/assets/sf-validation/moment-620a5949fff0ad37198f07464b91d7b7c110ecdb6f94ca90ca7d2e1b471f1da8.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/sf-validation/validate.min-2160a65c1b5d4a5966544ad25af8fe99f11c636a99c516fee6c7afd3b1f21409.js"></script> <p></p> </template> <script> class NvidiaSalesforceValidator extends HTMLElement { constructor() { const template = document.getElementById('nv-sf-form-validator-template'); super(); this._shadowRoot = this.attachShadow({'mode': 'open'}); this._shadowRoot.appendChild(template.content.cloneNode(true)); } initComponent() { if (!window.sfv) { return; } validate.extend(validate.validators.datetime, { parse: function (value, options) { if (moment(value, options.format, true).isValid()) { return +moment.utc(value); } }, format: function (value, options) { var format = options.dateOnly ? "MM/DD/YYYY" : "MM/DD/YYYY hh:mm"; return moment.utc(value).format(format); } }); function showErrors(errors) { $.each(errors, function (index, element) { $('input[name="' + errors[index]['attribute'] + '"]').each(function (i, e) { var errorMessage = errors[index]['options']['message']; $('<div class="js-validation-errors">' + errorMessage + '</div>').insertAfter(e); }).focus(); }); } function isValidForm(form, constraints) { var errors = validate(form, constraints, {format: "detailed"}); if (errors) { showErrors(errors); return false; } return true; } $.each(window.sfv, function (index, element) { $(element.target).on('click', function (event) { $('.js-validation-errors').remove(); if (!isValidForm(element.form, element.constraints)) { event.preventDefault(); } }); }); } connectedCallback() { document.addEventListener('DOMContentLoaded', () => { this.initComponent(); }); } } window.customElements.define('nv-sf-form-validator', NvidiaSalesforceValidator); </script> <script src="https://dirms4qsy6412.cloudfront.net/assets/horizontal-chart/d3.v4.min-41cfecdf7c41476e805de7afacf4aacdd1a4be6947fbecf95217e947ebc2faf5.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/horizontal-chart/visualize-d-06443fdef48364af6635f0d1d3535da26910671f6f6a680c531eff0e54ed595f.js"></script> <template id="chart-template"> <style> @import "https://dirms4qsy6412.cloudfront.net/assets/devzone3/modules/nvidia_tokens/nvidia-charts-a459e90d273ab4f8b282e0f5fef607074b5fc7cbb5f8d0f0e378281320e6b9c8.css"; </style> <div class="horizontal-chart-component"> <div class="chart-container"> <h4 class="chart-title"></h4> <p class="chart-subtitle"></p> <div class="legend"></div> <svg data-nvidia-chart="true" data-chart-legend=""></svg> <p class="chart-footnote"></p> </div> </div> </template> <script> function chartInit(element) { const chart = element.querySelector('svg[data-nvidia-chart]'); const isRendered = chart.getAttribute("data-rendered"); if (isRendered) { return; } const svgChart = d3.select(chart); const bars = JSON.parse(chart.dataset['chartBars']); const ticks = JSON.parse(chart.dataset['chartTicks']); const xAxisLabel = chart.dataset['xAxisLabel']; const barPadding = chart.dataset['barPadding']; const milestone = null; const isGrouped = chart.dataset['isGrouped'] === 'true'; if (isGrouped) { const legend = JSON.parse(chart.dataset['chartLegend']); createGroupedHorizontalBarChart(svgChart, bars, barPadding, legend, ticks, milestone, xAxisLabel, false); } else { createHorizontalBarChart(svgChart, bars, barPadding, ticks, xAxisLabel, "", false); } chart.dataset['rendered'] = 'true'; } $('a[data-toggle="tab"]').on("click", function (event) { setTimeout(() => { // Triggering 'resize' event to redraw charts. window.dispatchEvent(new Event('resize')); const target = jQuery(event.target).parents('.nav.nav-tabs').siblings('.tab-content').find('.tab-pane.active'); if (target.length > 0) { const svg = jQuery(target).find('horizontal-chart'); if (svg.length) { svg.each((idx, el) => { setTimeout(function () { const chartContainer = el._shadowRoot.querySelector('.chart-container'); chartInit(chartContainer); }, 300); }); } } }, 50); }); async function loadFileSource(url) { try{ const response = await fetch(url); return response.json(); }catch (e) { console.warn(`Failed to load chart data. URL: ${url}`); } return {}; } class HorizontalChartElement extends HTMLElement { constructor() { const horizontalCharTemplate = document.getElementById('chart-template'); super(); this._shadowRoot = this.attachShadow({ 'mode': 'open' }); this._shadowRoot.appendChild(horizontalCharTemplate.content.cloneNode(true)); } connectedCallback() { const url = this.getAttribute('source'); const element = this._shadowRoot; document.addEventListener("DOMContentLoaded", function () { loadFileSource(url).then(data => { const { chartTitle: title, chartSubtitle: subTitle, chartFootnote: footNote, chartId: id, isGrouped: isGrouped, legendData, barPadding, xAxisLabel, bars, ticks } = data; element.querySelector('.chart-title').innerHTML = title; // Subtitle if (subTitle) { element.querySelector('.chart-subtitle').innerHTML = subTitle; } else { element.querySelector('.chart-subtitle').remove(); } // Chart const svgElement = element.querySelector('.chart-container svg'); svgElement.id = id; const dataAttributes = [ ['isGrouped', isGrouped ? 'true' : 'false', ''], ['chartLegend', JSON.stringify(legendData), ''], ['xAxisLabel', xAxisLabel, ''], ['barPadding', barPadding, 5], ['chartBars', bars, ''], ['chartTicks', ticks, ''], ]; dataAttributes.forEach(dataAttribute => { if (dataAttribute[0] === 'chartBars' && dataAttribute[1]) { dataAttribute[1] = JSON.stringify(dataAttribute[1]); } if (dataAttribute[0] === 'chartTicks' && dataAttribute[1]) { dataAttribute[1] = JSON.stringify(dataAttribute[1]); } svgElement.dataset[dataAttribute[0]] = dataAttribute[1] ? dataAttribute[1] : dataAttribute[2]; }); // Caption if (footNote) { element.querySelector('.chart-footnote').innerHTML = footNote; } else { element.querySelector('.chart-footnote').remove(); } // Init chart const chartContainer = element.querySelector('.chart-container'); setTimeout(function () { if (jQuery(chartContainer).is(':visible')) { chartInit(chartContainer); } }, 300); }); }) } } window.customElements.define('horizontal-chart', HorizontalChartElement); </script> <script src="https://dirms4qsy6412.cloudfront.net/assets/tablefilter/tablefilter-e8295498b8f34d53fbb98264abcc88fb72c57915ee6a13b15361d5df0127ebbb.js"></script> <template id="nv-filtered-table-template"> <div class="nvidia-filtered-table-wrapper"></div> </template> <script> const buildTableIdentity = (function (str) { let counter = 0; return function (str) {counter += 1; return `${str}-${counter}`} })(); function slugify(str) { return String(str) .normalize('NFKD') // split accented characters into their base characters and diacritical marks .replace(/[\u0300-\u036f]/g, '') // remove all the accents, which happen to be all in the \u03xx UNICODE block. .trim() // trim leading or trailing whitespace .toLowerCase() // convert to lowercase .replace(/[^a-z0-9 -]/g, '') // remove non-alphanumeric characters .replace(/\s+/g, '-') // replace spaces with hyphens .replace(/-+/g, '-'); // remove consecutive hyphens } /** * Returns URL params. * * @returns {any|{[p: string]: string}} */ function getUrlParams() { try { return Object.fromEntries(new URLSearchParams(location.search)); } catch (e) { // Fallback for IE11. let search = location.search.substring(1) .replace(/&/g, '","') .replace(/=/g, '":"'); return JSON.parse('{"' + search + '"}', function (key, value) { return key === "" ? value : decodeURIComponent(value); }); } } /** * Query string extension for TableFilter. * * @see http://www.tablefilter.com/extension-run-time.html * * @param {Object} tf * TableFilter instance. * @constructor */ function QueryStringExtension(tf) { this.tf = tf; } QueryStringExtension.prototype.init = function () { let tf = this.tf; tf.emitter.on(['after-filtering'], this.afterFiltering.bind(this)); }; QueryStringExtension.prototype.afterFiltering = function (tf, terms) { const config = tf.cfg; // Get query string. let existingParams = getUrlParams(); // Remove values related to current table. $.each(terms, function (index, element) { let key = config.qs_filters[index]; delete existingParams[config.table_identity + "_" + key]; }); $.each(terms, function (index, element) { if (element.length) { existingParams[config.table_identity + "_" + config.qs_filters[index]] = element; } }); const paramsKeys = Object.keys(existingParams).sort(); let sortedParams = {}; $.each(paramsKeys, function (i, e) { sortedParams[e] = existingParams[e]; }); const params = $.param(sortedParams); const url = window.location.pathname + '?' + decodeURI(params); window.history.replaceState({}, '', url); }; function addQueryStringExtension(tf) { let queryStringExtension = new QueryStringExtension(tf); try { tf.registerExtension(queryStringExtension, 'queryStringExtension'); queryStringExtension.init(); } catch (e) { console.log('Failed to init URL params handler.'); } } /** * Filtered table web component. */ class NvFilteredTableWebComponent extends HTMLElement { constructor() { super(); const elementTemplate = document.getElementById('nv-filtered-table-template'); this._shadowRoot = this.attachShadow({'mode': 'open'}); this._shadowRoot.appendChild(elementTemplate.content.cloneNode(true)); } async loadSourceFile(url) { try { const response = await fetch(url); return response.json(); } catch (e) { console.warn(`Failed to load table data. URL: ${url}`); } return {}; } fetchComponentData = (url, el, hash) => this.loadSourceFile(url).then((data) => this.instantiateComponent(data, el, hash)); getColumnTypes(config) { return Array.from(config).map((col) => { const {columnType} = col; return columnType ? columnType : 'string'; }); } addFilterWidgets(config, headerData) { headerData.forEach((col, idx) => { const {filterWidget} = col; if (filterWidget) { config[`col_${idx}`] = filterWidget; } }); return config; } instantiateComponent(data, element, hash) { const {tableIndex: headerData, tableItems: rowsData, tableIdentity} = data; let filterConfig = { base_path: '/', sticky_headers: true, alternate_rows: true, mark_active_columns: { highlight_column: true, }, loader: true, highlight_keywords: true, no_results_message: true, toolbar: false, help_instructions: false, paging: { results_per_page: ['Records: ', [25, 50, 100]] }, auto_filter: true, responsive: true, grid_layout: { width: '100%', tbl_cont_css_class: 'nvidia-filtered-table' }, clear_filter_text: 'All', col_types: this.getColumnTypes(headerData), extensions: [ {name: ''} ], flt_css_class: 'filter-control', on_filters_loaded: (e) => { const {cfg} = e; if (!cfg) { return; } const {defaultValues} = cfg; if(!Array.isArray(defaultValues)) { return; } if (defaultValues.length === 0) { return; } defaultValues.forEach((defaultValue) => { const {index, value} = defaultValue; let headerCell = document.querySelector('.header-row th[data-idx="' + index + '"]'); if (!headerCell) { return; } const filterIndex = headerCell.dataset['fidx']; e.setFilterValue(filterIndex, value); }); e.filter(); }, qs_filters: headerData.map((item) => { return slugify(item?.columnName); }), }; filterConfig = this.addFilterWidgets(filterConfig, headerData); const id = tableIdentity ? tableIdentity : buildTableIdentity('t'); filterConfig.table_identity = id; const defaultValues = headerData .filter(item => item?.defaultValue !== undefined) .map(item => { return {index: item['column'], value: item['defaultValue']}; }); const filtersMap = headerData.map(item => { const {columnName, column} = item; return { index: column, key: `${id}_${slugify(columnName)}`} }); const sp = new URLSearchParams(location.search); filtersMap.forEach(filter => { if (!sp.has(filter.key)) { return; } defaultValues.push({index: filter.index, value: sp.get(filter.key)}); }); const detail = { hash, headerData, rowsData, defaultValues, filterConfig: { table_identity: id, config: filterConfig, predefined_selects: JSON.stringify([]), labels_width: [], }, }; const event = new CustomEvent('nv.filterTable.build', {detail}); document.dispatchEvent(event); } connectedCallback() { const url = this.getAttribute('source'); const hash = this.getAttribute('data-hash'); const element = this._shadowRoot; document.addEventListener('DOMContentLoaded', () => this.fetchComponentData(url, element, hash)); } } // Register web component. window.customElements.define('nv-filtered-table', NvFilteredTableWebComponent); /** * Builds table header. * * @param {Array} data * @param {HTMLElement} parentElement */ const buildHeader = (data, parentElement) => { data.forEach((item, idx) => { const {column, columnName} = item; const cell = document.createElement('th') cell.dataset['idx'] = column; cell.dataset['fidx'] = idx; cell.innerHTML = columnName; const {labelWidth, columnWidth} = item; if (labelWidth) { cell.dataset['label_width'] = labelWidth; } if (columnWidth && Number.isInteger(columnWidth) && columnWidth > 0) { cell.width = columnWidth + '%'; } else if (columnWidth && (columnWidth.endsWith('em') || columnWidth.endsWith('px') || columnWidth.endsWith('%'))) { cell.width = columnWidth; } parentElement.appendChild(cell); }); } /** * Builds table rows. * * @param {Object} headerData * @param {Array} data * @param {HTMLElement} parentElement */ const buildRows = (headerData, data, parentElement) => { data.forEach(partner => { const {name, logo, URL: partnerUrl, cameras} = partner; const logoCellContent = ` <a href="${partnerUrl}"> <img src="${logo}" alt="${name}" title="${name}" loading="lazy"> </a> <span class="element-invisible">${name}</span> `; cameras.forEach(camera => { const row = document.createElement('tr'); const logoCell = document.createElement('td'); logoCell.innerHTML = logoCellContent; row.appendChild(logoCell); for (const [key, value] of Object.entries(headerData)) { if (!camera[value.column]) { continue; } const cell = document.createElement('td'); let cameraValue = camera[value.column]; let cellHTML = ''; if (typeof cameraValue === 'object') { const {type, product_url, product_img, td_text} = cameraValue let img = ''; if(product_img !== "—") { img = `<img src="${product_img}" alt="${td_text}" title="${td_text}">`; } let html = ` <div class="product-link"> <a href="${product_url}" target="_blank"> ${img} <div class="product-title">${td_text}</div> </a> </div>` cellHTML = html.trim(); } else if (typeof cameraValue === 'string') { cellHTML = cameraValue } cell.innerHTML = cellHTML; row.appendChild(cell); } parentElement.appendChild(row); }) }); } const initTable = (table, filtersConfig, defaultValues) => { filtersConfig.config.defaultValues = defaultValues; const nvidiaFilteredTable = new TableFilter(table, filtersConfig.config); nvidiaFilteredTable.emitter.on(['before-loading-extensions'], addQueryStringExtension); nvidiaFilteredTable.init(); }; document.addEventListener('nv.filterTable.build', (event) => { const {detail} = event; const {headerData, rowsData, filterConfig, hash, defaultValues} = detail; const component = document.querySelector('nv-filtered-table[data-hash="' + hash + '"]'); const element = document.createElement('div'); element.classList.add('nvidia-filtered-table-wrapper'); element.innerHTML = `<div class="table-responsive"><table class="table table-hover table-striped sticky-enabled"><thead></thead><tbody></tbody></table></div>`; component.after(element); const table = element.querySelector('table'); const tableHeader = element.querySelector('table thead'); const tableHeaderRow = document.createElement('tr'); tableHeaderRow.classList.add('header-row'); tableHeader.appendChild(tableHeaderRow); buildHeader(headerData, tableHeaderRow); const tableBody = element.querySelector('table tbody'); buildRows(headerData, rowsData, tableBody); initTable(table, filterConfig, defaultValues); }); </script> <script src="https://dirms4qsy6412.cloudfront.net/assets/nv-developer-menu-09b6a95e79b8d8d44b0f1ac794e39d5adac82391d128f6d4d39715826a860020.js"></script> <script> let menuLocale = 'en'; if (menuLocale == 'en') { menuLocale = 'en-US'; } function mountHeader(data = false) { let options = { baseURL: window.location.origin, signedIn: false, locale: menuLocale }; if (data) { options.secondaryMenu = data; } options.showMembershipCardLink = true; new NVDeveloperHeader({ target: document.getElementById('header'), props: options }); } function mountFooter(data = false) { let options = { menu: data, locale: menuLocale }; new NVDeveloperFooter({ target: document.getElementById('footer'), props: options }); } let url = 'd29g4g2dyqv443.cloudfront.net'; let headerMenuURL = "https://d29g4g2dyqv443.cloudfront.net/menu/en-US/autonomous-machines.json"; fetch(headerMenuURL) .then(response => response.json()) .then(data => { mountHeader(data); }) .catch((error) => { mountHeader(); window.nv.tracing.addError('menu', error); }); fetch(`https://${url}/menu/${menuLocale}/footer.json`) .then(response => response.json()) .then(data => { mountFooter(data); }) .catch((error) => { mountFooter(); window.nv.tracing.addError('menu', error); }); </script> <script src="https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js"></script> <script> let silentAuthHost = 'www.nvidia.com'; let crossOriginPageUrl = `https://${silentAuthHost}/auth/hints/`; function readHint() { return new Promise((resolve) => { const { origin: targetOrigin } = new URL(crossOriginPageUrl); const iframe = document.createElement('iframe'); iframe.hidden = true; iframe.src = crossOriginPageUrl; function responseHandler(event) { if (event.origin === targetOrigin) { iframe.parentNode.removeChild(iframe); return resolve(event.data); } } window.addEventListener('message', responseHandler, { once: true }); iframe.onload = () => { iframe.contentWindow.postMessage({ type: 'read' }, targetOrigin); } document.body.appendChild(iframe); }); } function writeHint(login_hint, idp_id, timestamp, sub) { const { origin: targetOrigin } = new URL(crossOriginPageUrl); const iframe = document.createElement('iframe'); iframe.hidden = true; iframe.src = crossOriginPageUrl; iframe.onload = () => { const message = { type: 'write', login_hint, idp_id, timestamp, sub }; iframe.contentWindow.postMessage(message, targetOrigin); } document.body.appendChild(iframe); } function deleteHint() { const { origin: targetOrigin } = new URL(crossOriginPageUrl); const iframe = document.createElement('iframe'); iframe.hidden = true; iframe.src = crossOriginPageUrl; iframe.onload = () => { iframe.contentWindow.postMessage({ type: 'delete' }, targetOrigin); } document.body.appendChild(iframe); } </script> <script>_satellite.pageBottom();</script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/runtime-503119e3bfeec75056bc.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/692-70104789368a40f2d231.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/341-3761d2892158034dde54.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/171-72c84e9bea55d778d36a.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/866-f9c34b19d1b60b883caf.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/311-033b6299b51897e65419.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/252-f83b27d9f72fef366bc7.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/582-d6d587645f7c87937f15.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/900-df684e5d2e49c0841d7f.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/application-34e06828c108fa024662.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/ls_track-4ba11c63b23b3f4ff0d5.js" defer="defer"></script> </body> </html>