CINXE.COM
Nsight Developer Tools | 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="OO0V93mi975WccgQnBzc2heqmGJ2pLB7akLkSJfuyRcHkqt8XCLFhc_sSP0nB-MP7s1y7hbQDSz3wJCkgRAEXQ" /> <meta name="csp-nonce" /> <title>Nsight Developer Tools | NVIDIA Developer</title> <meta name="description" content="NVIDIA Nsight tools are a set of libraries, SDKs, and developer tools to build, debug, profile, and develop software."> <meta name="keywords" content="developer tool, nsight tool, accelerated computing, nvidia"> <link rel="canonical" href="https://developer.nvidia.com/tools-overview"> <link rel="alternate" href="https://developer.nvidia.com/tools-overview" hreflang="x-default"> <link rel="alternate" href="https://developer.nvidia.com/tools-overview" hreflang="en-us"> <link rel="alternate" href="https://developer.nvidia.cn/tools-overview" hreflang="zh-cn"> <meta property="og:site_name" content="NVIDIA Developer"> <meta property="og:title" content="Nsight Developer Tools"> <meta property="og:description" content="Build, debug, profile, and develop class-leading and cutting-edge software."> <meta property="og:type" content="website"> <meta property="og:image" content="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/dev-tools-og.jpg"> <meta property="og:url" content="https://developer.nvidia.com/tools-overview"> <meta name="twitter:title" content="NVIDIA Nsight Developer Tools"> <meta name="twitter:description" content="NVIDIA Developer Tools are a collection of apps which enable developers to build, debug, profile, and develop software that utilizes the latest accelerated computing hardware."> <meta name="twitter:image" content="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/dev-tools-og.jpg"> <meta name="twitter:site" content="@NVIDIA"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@NVIDIA"> <meta property="industry" content="HPC / Scientific Computing"> <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="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" as="style" type="text/css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" /> <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/new/application-18e41529317cec7a71ff11ed11f560691cd0843420e9cb6082d8cf8ce8fc638c.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/twentytwenty/css/twentytwenty-4ef2ccd719d09a97572e93c499c1fb11cc971d2a3519cfe105dcff2be92f65b9.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> <link rel="stylesheet" href="https://dirms4qsy6412.cloudfront.net/assets/sf-validation/sf-validation-805362e079494cd052f713be5f91a44eb602f545c342f794abbd4a8050c0acb3.css" /> <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_new'> <div id='header'></div> <main class="main-content dz3-main-section dz-new-theme page-tools-overview page-tools-overview" data-id="743"> <style> /*#section-all .col-md-3:nth-of-type(5){ // display:none; } */ .btn{ border: 1px solid #76b900; } .btn-default { background: #fff; border: 1px solid #ada7a7; color: #ada7a7; } .btn:hover, .btn:focus, .btn:active{ background: #76b900; border-color: #76b900; color: #fff; } .filter-btn.active{ background-color: #76b900!important; border-color: #76b900!important; color: #fff; } .filters.row .col-md-4{ margin-top:0; } .filters-top-level .col-md-4{ margin-top:15px!important; margin-bottom:0; } .m-t-0{ margin-top:0!important; } .m-b-0{ margin-bottom:0!important; } .m-b-15{ margin-bottom:15px!important; } .m-t-10{ margin-top:10px; } .parent-icon{ color: #aeaaaa; font-size: 20px; } .col-md-3{ display: flex; flex-direction: column; } .col-md-3 .cta--tert{ /* margin-top:auto;*/ padding-top:20px; } </style> <script> jQuery( document ).ready(function() { jQuery(".filters").hide(); jQuery(".row-msg").hide(); //jQuery(".parent--icon-row").hide(); jQuery( ".tab-all-head" ).click(function() { jQuery('#section-all .col-md-3.tab-all').show(); jQuery(".filters").hide(); }); jQuery( ".tab-all-head" ).click(function() { jQuery(".select-filter-msg").hide(); }); jQuery( ".tab1-head" ).click(function() { jQuery(".filters").hide(); jQuery('.filter-btn').removeClass('active'); jQuery(".select-filter-msg").show(); jQuery(".row-msg").show(); jQuery(".filters-tab1-row1").show(); jQuery('#section-all .col-md-3.tab-all').hide(); jQuery('#section-all .col-md-3.tab1').show(); }); jQuery( ".tab2-head" ).click(function() { jQuery(".filters").hide(); jQuery('.filter-btn').removeClass('active'); jQuery(".select-filter-msg").show(); jQuery(".filters-tab2-row1").show(); jQuery('#section-all .col-md-3.tab-all').hide(); jQuery('#section-all .col-md-3.tab2').show(); }); jQuery( ".tab3-head" ).click(function() { jQuery(".filters").hide(); jQuery('.filter-btn').removeClass('active'); jQuery(".select-filter-msg").show(); jQuery(".filters-tab3-row1").show(); jQuery('#section-all .col-md-3.tab-all').hide(); jQuery('#section-all .col-md-3.tab3').show(); }); jQuery( ".tab4-head" ).click(function() { jQuery(".filters").hide(); jQuery('.filter-btn').removeClass('active'); jQuery(".select-filter-msg").show(); jQuery(".filters-tab4-row1").show(); jQuery('#section-all .col-md-3.tab-all').hide(); jQuery('#section-all .col-md-3.tab4').show(); }); jQuery( ".filter-btn" ).click(function() { // jQuery(".parent--icon-row").hide(); jQuery(this).closest('.row.filters').find('.filter-btn').removeClass('active'); jQuery(this).addClass('active'); var filter_name = jQuery(this).attr('name'); var parent_filter_name = jQuery(this).attr('parent-name'); var parent_parent_filter_name = jQuery(this).attr('parent-parent-name'); jQuery('button[parent-name="'+filter_name+'"]').removeClass('active');//Remove the childrens active class when clicking back on the parent jQuery('#section-all .col-md-3.tab-all').hide();//Hide all tabs items jQuery('.'+filter_name+'-item').show();//Show tab elements belongs to selected filter var filters_arr=[] //Collect all filter that has sub filters jQuery('button[has-sub-filters="true"]').each(function() { var filterName = jQuery(this).attr('name'); filters_arr.push(filterName); //if(jQuery(this).hasClass('active')) // { // jQuery(".parent--icon-row").show(); // } }); //remove the current from array so it won't be removed filters_arr = filters_arr.filter(function(elem){ return elem != filter_name && elem != parent_filter_name && elem != parent_parent_filter_name; }); jQuery(this).closest('.row.filters').show(); jQuery.each(filters_arr, function( index, value ){ jQuery('div[parent="'+value+'"]').hide(); jQuery('div[parent="'+value+'"] > .col-md-4 > .filter-btn').removeClass('active'); }); jQuery('div[parent="'+filter_name+'"]').show();//Show all the childrens filter with parent equel to this filter }); }); </script> <section class="sct--s" > <div class="cntnr--narrow txt-cntr"> <h1 class="h--large">NVIDIA Nsight Developer Tools</h1> <p class="p--large">NVIDIA Nsight™ tools are a powerful set of libraries, SDKs, and developer tools spanning across desktop and mobile targets that enable developers to build, debug, profile, and develop software that utilizes the latest accelerated computing hardware.</p> <br> <p><a class="cta--l cta--prim" href="#get-tools">Get Tools</a> <a class="cta--l cta--scnd" href="/tools-tutorials">View Tutorials</a></p> </div> <div class="cntnr--cw txt-cntr"> <div class="p-t-30"> <!-- <a class="colorbox" href="javascript:document.getElementsByTagName('body')[0].innerHTML='<img src=https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/nvidia-developer-tools-1070x400.svg width=800 height=600>'"><img alt="NVIDIA Nsight for GPU Software Development" title="NVIDIA Nsight for GPU Software Development" class="img-responsive" src="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/nvidia-developer-tools-1070x400.svg" /></a> --> <img alt="NVIDIA Nsight for GPU Software Development" title="NVIDIA Nsight for GPU Software Development" class="img-responsive" src="https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/nvidia-developer-tools-1070x400.svg"> <figcaption>NVIDIA Nsight tools for software development.</figcaption> </div> </div> </section> <section class="sct--m" id="get-tools"> <h2 class="h--medium txt-cntr">What Segment Are You Working on?</h2> <br> <ul class="nav nav-tabs justify-content-center"> <li class="nav-item active"> <a class="nav-link tab-all-head active" data-toggle="tab" href="#section-all"><p class="p--medium text-nv-green"><strong>View All</strong></p></a> </li> <li class="nav-item active"> <a class="nav-link tab1-head" data-toggle="tab" href="#section-all"><p class="p--medium text-nv-green"><strong>CUDA/Compute</strong></p></a> </li> <li class="nav-item"> <a class="nav-link tab2-head" data-toggle="tab" href="#section-all"><p class="p--medium text-nv-green"><strong>Graphics</strong></p></a> </li> <li class="nav-item"> <a class="nav-link tab3-head" data-toggle="tab" href="#section-all"><p class="p--medium text-nv-green"><strong>OptiX</strong></p></a> </li> <li class="nav-item"> <a class="nav-link tab4-head" data-toggle="tab" href="#section-all"><p class="p--medium text-nv-green"><strong>Deep Learning</strong></p></a> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="section-all"> <div class="cntnr--cw"> <div class="row row-msg"> <div class="col-md-12 m-b-0 m-t-10"> <p class="text-center p--large select-filter-msg">Developer Activity</p> </div> </div> <div class="row filters filters-tab1-row1 filters-top-level"> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-ide"> Code Development </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-debugging-correcness" has-sub-filters="true"> Debugging / Correctness </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-profiling" has-sub-filters="true"> Profiling </button> </div> </div> <div class="row filters filters-sub-level" parent="t1-debugging-correcness"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-debugging" parent-name="t1-debugging-correcness"> Debugging </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-correctness-checking" parent-name="t1-debugging-correcness"> Correctness Checking </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-debugging-apis" parent-name="t1-debugging-correcness"> APIs </button> </div> </div> <div class="row filters filters-sub-level" parent="t1-profiling"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-platform-analysis" parent-name="t1-profiling"> Platform Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-kernel-analysis" parent-name="t1-profiling"> Kernel Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-profiling-apis" has-sub-filters="true" parent-name="t1-profiling"> APIs </button> </div> </div> <div class="row filters filters-sub-sub-level" parent="t1-profiling-apis"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-profiling-tracing" parent-name="t1-profiling-apis" parent-parent-name="t1-profiling"> Profiling/Tracing </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t1-annotations" parent-name="t1-profiling-apis" parent-parent-name="t1-profiling"> Annotations </button> </div> </div> <div class="row filters filters-tab2-row1 filters-top-level"> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-debugging" has-sub-filters="true"> Debugging </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-profiling" has-sub-filters="true"> Profiling </button> </div> </div> <div class="row filters filters-sub-level" parent="t2-profiling"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-platform-analysis" parent-name="t2-profiling"> Platform Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-application-analysis" parent-name="t2-profiling"> Application Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-sdks-apis" parent-name="t2-profiling"> SDKs / APIs </button> </div> </div> <div class="row filters filters-sub-level" parent="t2-debugging"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-debugging-debugging" parent-name="t2-debugging"> Debugging </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t2-crash-reporting" parent-name="t2-debugging"> Crash Reporting </button> </div> </div> <div class="row filters filters-tab3-row1 filters-top-level"> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-ide-integration"> Code Development </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-debugging-correctness"> Debugging / Correctness </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-profiling" has-sub-filters="true"> Profiling </button> </div> </div> <!--<div class="row filters filters-sub-level" parent="t3-debugging-correctness"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="debugging-t3" parent-name="t3-debugging-correctness"> DEBUGGING </button> </div> </div>--> <div class="row filters filters-sub-level" parent="t3-profiling"> <div class="col-md-12 text-center m-b-15 m-t-0"> <span class="parent-icon"> | </span> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-platform-analysis" parent-name="t3-profiling"> Platform Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-kernel-analysis" parent-name="t3-profiling"> Kernel Analysis </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t3-apis" parent-name="t3-profiling"> APIs </button> </div> </div> <div class="row filters filters-tab4-row1 filters-top-level"> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t4-design"> Design </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t4-debugging" has-sub-filters="true"> Debugging </button> </div> <div class="col-md-4"> <button class="w-100 btn btn-default btn-lg filter-btn" name="t4-profiling" has-sub-filters="true"> Profiling </button> </div> </div> <!-- Start of cards --> <div class="row p-t-30"> <div class="col-md-3 tab-all tab1 tab2 tab3 t1-profiling-item t1-platform-analysis-item t2-profiling-item t2-platform-analysis-item t2-application-analysis-item t3-profiling-item t3-platform-analysis-item "> <div class="card" onclick="location.href='/nsight-systems';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Systems</h3> <p class="p--medium">Nsight Systems provides a system-wide visualization of an application’s performance, so you can optimize bottlenecks to scale efficiently across any number or size of CPUs and GPUs. To further optimize compute kernels, use Nsight Compute, and to further optimize graphics workloads, use Nsight Graphics.</p> <a class="cta--tert" href="/nsight-systems">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-profiling-item t1-kernel-analysis-item t3-kernel-analysis-item t3-profiling-item"> <div class="card" onclick="location.href='/nsight-compute';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Compute</h3> <p class="p--medium">Nsight Compute is an interactive kernel profiler for CUDA applications. It provides detailed performance metrics and API debugging via a user interface and command-line tool. It also provides a customizable, data-driven user interface and metric collection that can be extended with analysis scripts for post-processing results.</p> <a class="cta--tert" href="/nsight-compute">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab2 t2-profiling-item t2-application-analysis-item t2-debugging-item t2-debugging-debugging-item"> <div class="card" onclick="location.href='/nsight-graphics';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Graphics</h3> <p class="p--medium">Nsight Graphics is a standalone application for the debugging, profiling, and analysis of graphics applications on Microsoft Windows and Linux. It allows you to optimize the performance of applications based on Direct3D 11, Direct3D 12, DirectX Raytracing 1.1, OpenGL, Vulkan, and the Khronos Vulkan Ray Tracing Extension.</p> <a class="cta--tert" href="/nsight-graphics">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 tab3 t1-ide-item t1-debugging-correcness-item t1-debugging-item t3-ide-integration-item t3-debugging-correctness-item t3-debugging-item"> <div class="card" onclick="location.href='/nsight-visual-studio-edition';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Visual Studio Edition (VSE)</h3> <p class="p--medium">Nsight VSE is an application development environment for heterogeneous platforms that brings GPU computing into Microsoft Visual Studio. Nsight VSE allows you to build and debug integrated GPU kernels and native CPU code, as well as inspect the state of the GPU and memory.</p> <a class="cta--tert" href="/nsight-visual-studio-edition">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 tab3 t1-ide-item t1-debugging-correcness-item t1-debugging-item t3-ide-integration-item t3-debugging-correctness-item t3-debugging-item"> <div class="card" onclick="location.href='/nsight-visual-studio-code-edition';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Visual Studio Code Edition (VSCE)</h3> <p class="p--medium">Nsight VSCE is an application development environment for heterogeneous platforms that brings CUDA development into Microsoft Visual Studio Code. Nsight VSCE lets you build and debug GPU kernels and native CPU code, as well as inspect the state of the GPU and memory.</p> <a class="cta--tert" href="/nsight-visual-studio-code-edition">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-ide-item t1-profiling-item t1-kernel-analysis-item"> <div class="card" onclick="location.href='https://pypi.org/project/jupyterlab-nvidia-nsight/0.5.2/';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Tools JupyterLab Extension</h3> <p class="p--medium">Nsight Tools JupyterLab Extension allows profiling Python and other supported languages directly in JupyterLab using Nsight Systems and Nsight Compute. The extension enables detailed performance analysis on the execution of individual cells.</p> <a class="cta--tert" href="https://pypi.org/project/jupyterlab-nvidia-nsight/0.5.2/">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 tab3 t1-ide-item t1-debugging-correcness-item t1-debugging-item t3-ide-integration-item t3-debugging-correctness-item t3-debugging-item"> <div class="card" onclick="location.href='/nsight-eclipse-edition';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Eclipse Edition</h3> <p class="p--medium">Nsight Eclipse Edition is a full-featured integrated development environment powered by the Eclipse platform for editing, building, debugging, and profiling CUDA-C applications. Nsight Eclipse Edition supports a rich set of commercial and free plug-ins.</p> <a class="cta--tert" href="/nsight-eclipse-edition">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 tab3 t1-debugging-correcness-item t1-debugging-item t3-debugging-correctness-item t3-debugging-item"> <div class="card" onclick="location.href='/cuda-gdb';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">CUDA-GDB</h3> <p class="p--medium">CUDA-GDB is an extension to GDB, the GNU Project debugger. The tool provides you with a mechanism for debugging CUDA applications running on actual hardware, so you can debug applications without the potential variations introduced by simulation and emulation environments.</p> <a class="cta--tert" href="/cuda-gdb">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-debugging-correcness-item t1-correctness-checking-item t1-debugging-correcness-item"> <div class="card" onclick="location.href='/nvidia-compute-sanitizer';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Compute Sanitizer</h3> <p class="p--medium">Compute Sanitizer is a functional correctness checking suite that contains multiple tools for different types of checks—including checks for memory access errors, shared memory data access hazards, uninitialized accesses to global memory, and invalid usage of synchronization primitives.</p> <a class="cta--tert" href="/nvidia-compute-sanitizer">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab2 t2-debugging-item t2-crash-reporting-item"> <div class="card" onclick="location.href='/nsight-aftermath';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Aftermath SDK</h3> <p class="p--medium">The Nsight Aftermath SDK is a simple library you integrate into your DirectX 12 game’s crash reporter to generate GPU "mini-dumps" when a timeout detection and recovery (TDR) or exception occurs.</p> <a class="cta--tert" href="/nsight-aftermath">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab2 t2-profiling-item t2-sdks-apis-item"> <div class="card" onclick="location.href='/nsight-perf-sdk';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Perf SDK</h3> <p class="p--medium">The Nsight Perf SDK is a graphics profiling toolbox for DirectX, Vulkan, and OpenGL, enabling you to collect GPU performance metrics directly from your application.</p> <a class="cta--tert" href="/nsight-perf-sdk">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-profiling-item t1-profiling-apis-item t1-profiling-tracing-item"> <div class="card" onclick="location.href='/cupti';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">CUDA Profiling Tools Interface (CUPTI)</h3> <p class="p--medium">CUPTI is a dynamic library that enables the creation of profiling and tracing tools that target CUDA applications. Using the CUPTI APIs, you can create profiling tools that give insight into the CPU and GPU behavior of CUDA applications.</p> <a class="cta--tert" href="/cupti">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 tab2 tab3 t1-profiling-item t1-profiling-apis-item t1-annotations-item t2-profiling-item t2-sdks-apis-item t3-apis-item t3-profiling-item"> <div class="card" onclick="location.href='https://docs.nvidia.com/gameworks/content/gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">NVIDIA Tools Extension SDK (NVTX)</h3> <p class="p--medium">NVTX is an API for annotating events, code ranges, and resources in your applications. Applications that integrate NVTX can use Nsight VSE to capture and visualize these events and ranges. NVTX provides additional information to improve the presentation of data. </p> <a class="cta--tert" href="https://docs.nvidia.com/gameworks/content/gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab4 t4-design-item t4-debugging-item t4-profiling-item"> <div class="card" onclick="location.href='/nsight-dl-designer';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Nsight Deep Learning Designer</h3> <p class="p--medium">Nsight Deep Learning Designer is an integrated development environment that lets you efficiently design and develop deep neural networks for in-app inference. </p> <a class="cta--tert" href="/nsight-dl-designer">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-debugging-apis-item t1-debugging-correcness-item"> <div class="card" onclick="location.href='/nvidia-compute-sanitizer';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Compute Sanitizer API</h3> <p class="p--medium">Compute Sanitizer is a functional correctness checking suite that contains multiple tools for different types of checks. The Compute Sanitizer API enables the creation of sanitizing and tracing tools that target CUDA applications. </p> <a class="cta--tert" href="/nvidia-compute-sanitizer">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-3 tab-all tab1 t1-debugging-apis-item t1-debugging-correcness-item"> <div class="card" onclick="location.href='https://docs.nvidia.com/cuda/debugger-api/index.html';"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest">Debugger API</h3> <p class="p--medium">The Debugger API provides a public, abstracted, debugging model for GPUs. This is the same API that is used by our open-source CUDA-GDB tool, and it provides the necessary functionality for developing your own debuggers. It supports GPU architectures from NVIDIA Maxwell™ onward. </p> <a class="cta--tert" href="https://docs.nvidia.com/cuda/debugger-api/index.html">Learn More <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <br> </div> </div> </div> </div> </section> <section class="sct--s sct--lt-gry1"> <div class="cntnr--cozy"> <center> <h2 class="h--medium txt-cntr txt-clr-blck">Get Started</h2> <p class="p--medium">Explore the latest resources to help you set up and use Nsight Developer Tools.</p> <div class="separator separator--15"></div> <p><a class="cta--l cta--prim" href="https://developer.nvidia.com/tools-tutorials">Tutorial Center</a> </p> </center> </div> </section> <section class="sct--s"> <div class="cntnr--cozy"> <h2 class="h--medium txt-cntr txt-clr-blck">Legacy Tools</h2> <div class="row"> <div class="col-md-6"> <ul class="fa-ul"> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://docs.nvidia.com/cuda/profiler-users-guide/index.html#nvprof-overview">Nvprof</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="/nvidia-visual-profiler">NVIDIA Visual Profiler (NVVP)</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="/cuda-memcheck#:~:text=CUDA%2DMEMCHECK%20detects%20these%20errors,when%20your%20application%20is%20running.">CUDA-MEMCHECK</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="/nvidia-perfkit#:~:text=NVIDIA%20PerfKit%20is%20a%20comprehensive,counters%20inside%20the%20GPU%20itself.">NVIDIA PerfKit</a> </li> </ul> </div> <div class="col-md-6"> <ul class="fa-ul"> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://developer.nvidia.com/nvidia-nsight-tegra">NVIDIA Nsight Tegra®, Visual Studio Edition</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://developer.nvidia.com/codeworks-android-archive">CodeWorks for Android</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://developer.nvidia.com/tegra-graphics-debugger">Tegra Graphics Debugger</a> </li> </ul> </div> </div> </div> </section> <section class="sct--s sct--lt-gry1"> <div class="cntnr--cozy"> <h2 class="h--medium txt-cntr txt-clr-blck">Support and Resources</h2> <div class="row"> <div class="col-md-2"></div> <div class="col-md-8"> <ul class="fa-ul"> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://forums.developer.nvidia.com/c/development-tools/106">Forums</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="https://docs.nvidia.com/#nvidia-nsight-developer-tools"> Documentation</a> </li> <li> <span class="fa-li"><i class="far fa-angle-right fa-fw"></i></span><a href="/gameworksdownload#?tx=%24gameworks,developer_tools">Download</a> </li> </ul> </div> <div class="col-md-2"></div> </div> </div> </section> <section class="sct--s"> <div class="cntnr--narrow"> <div id="faq" class="sdbr-section selected-section"> <h2 class="h--medium txt-cntr">FAQ</h2> <br> <div id="accordion"> <div class="card"> <div class="card-header" id="headingOne"> <p class="mb-0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseOne"> Q: Are developer tools available as a suite or individual downloads? </a> </p> </div> <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion"> <div class="card-body"> A: Many of the tools are available as standalone downloads on their specific product pages. Several of the tools are also packaged inside toolkits and SDKs like the CUDA Toolkit, HPC SDK, and NVIDIA JetPack™ SDK. For specific components in each package, check the release notes. Sometimes a newer version of a tool will be available from the product download page if it was released after the toolkit or SDK shipped. </div> </div> </div> <div class="card"> <div class="card-header" id="headingTwo"> <p class="mb-0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseTwo"> Q: Which tool do I start with to profile my application? </a> </p> </div> <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion"> <div class="card-body"> A: Nsight Systems is the high-level system profiler to help you understand the performance and bottlenecks of your platform. It’s applicable to both graphics and compute workloads and has built-in expertise to detect and provide advice about common performance issues. </div> </div> </div> <div class="card"> <div class="card-header" id="headingThree"> <p class="mb-0"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseThree"> Q: What are the system requirements for these tools? </a> </p> </div> <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion"> <div class="card-body"> A: Each tool will have its own individual requirements for both hardware and software. Check the specific product page of the tool you’re interested in for more information. </div> </div> </div> </div> <div class="panel-group" id="accordion" style="display:none;"> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseOne">Q: Are developer tools available as a suite or individual downloads? </a> </div> <div class="panel-collapse collapse in" id="collapseOne"> <div class="panel-body"> <p>A: Many of the tools have standalone downloads available from their specific product pages. Several of the tools are also packages inside toolkits and SDKs like the CUDA Toolkit, HPC SDK, and NVIDIA JetPack™ SDK. For specific components in each package, check the release notes. Sometimes a newer version of a tool will be available from the product download page if it’s released after the toolkit or SDK has shipped.</p> </div> </div> </div> <br> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseTwo">Q: Which tool do I start with to profile my application? </a> </div> <div class="panel-collapse collapse" id="collapseTwo"> <div class="panel-body"> <p>A: Nsight Systems is the high-level system profiler to help you understand the performance and bottlenecks of your platform. It’s applicable to both graphics and compute workloads and has built-in expertise to detect and provide advice about common performance issues. </p> </div> </div> </div> <br> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapsethree">Q: What are the system requirements for these tools?</a> </div> <div class="panel-collapse collapse" id="collapsethree"> <div class="panel-body"> <p>A: Each tool will have its own individual requirements for both hardware and software. Check the specific product page of the tool you’re interested in for more information.</p> </div> </div> </div> <br> </div> </div> </div> </section> <section class="sct--xs sct--drk-gry4"> <div class="cntnr--cw"> <p class="content-l text-white txt-cntr">Get started with NVIDIA Nsight developer tools. <a class="cta--prim" href="/gameworksdownload#?tx=%24gameworks,developer_tools" role="button">Get Started</a></p> <br> </div> </section> <script> document.addEventListener('DOMContentLoaded', () => { const allLinks = document.querySelectorAll('.dz3-main-section.dz-new-theme a'); allLinks.forEach((link) => { let hasIcon = link.querySelector('span.fas'); if(hasIcon) { link.classList.add('has-cta-icon'); } }); }); </script> </main> <div id='footer' class='mt-auto'></div> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/devzone3/new/popper.min-a9eb3f3101919a18965114cfdcd0138652ec03b2b58cfb26806f9a256564c858.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/feed-aggregator/feed-aggregator-7f147443abc2d1300a239c29e4ba3ca0d0d2eb0dc66b608765e2b3be50e18e10.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/devzone3/new/dist/dz3-new-bundle-11f473650a558402a2733b7bb4d6133e28814892ec0527381c9144f3499b8d60.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/twentytwenty/js/jquery.event.move-16041d2e384b513c1b202af51fc404a0643b8c38ff823bb4326520ad5a82b761.js"></script> <script src="https://dirms4qsy6412.cloudfront.net/assets/twentytwenty/js/jquery.twentytwenty-835622257095d5bd0719a5484d68213ccc8708a321dd3deded777d1e6623b499.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/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/header-secondary.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>