CINXE.COM
NVIDIA HPC SDK Current Release Downloads | 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="Nv0LuwSb34iyXWSQE5pyRDWIxFOw3bhc_7g5NxMQHfOFK-RxC5rZDKEgYrymg5G2l-j4qdEuZU_XkGO1hUxK0Q" /> <meta name="csp-nonce" /> <title>NVIDIA HPC SDK Current Release Downloads | NVIDIA Developer</title> <link rel="canonical" href="https://developer.nvidia.com/hpc-sdk-downloads"> <link rel="alternate" href="https://developer.nvidia.com/hpc-sdk-downloads" hreflang="x-default"> <link rel="alternate" href="https://developer.nvidia.com/hpc-sdk-downloads" hreflang="en-us"> <meta property="og:site_name" content="NVIDIA Developer"> <meta property="og:title" content="NVIDIA HPC SDK Current Release Downloads"> <meta property="og:type" content="website"> <meta property="og:image" content="https://developer.download.nvidia.com/images/og-default.jpg"> <meta property="og:url" content="https://developer.nvidia.com/hpc-sdk-downloads"> <meta name="twitter:title" content="NVIDIA HPC SDK Current Release Downloads"> <meta name="twitter:image" content="https://developer.download.nvidia.com/images/og-default.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-1e91adb0e814253f53c7a621169b6daa7cc975f97befa1c8f1a2ffe493719eb1.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 src="https://dirms4qsy6412.cloudfront.net/assets/onetrust-overrides-v2-9d7d1399c432d702a5bf32a31067737e10c123fdbe5ffef8ae83a34cf2d680ee.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-hpc-sdk-downloads" data-id="1405"> <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> <div class='page-header'><h1 class='title'>NVIDIA HPC SDK Current Downloads</h1></div> <style> pre.hpcsdkBashBlock{margin:0 var(--spacing) var(--spacing);white-space:nowrap} .hpcsdkBashBlock code, span{white-space:nowrap} .hpcsdkBash{display:block} .hpcsdkBash:before{content:"$";margin-right:1em;} </style> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous"> <!-- start JIRA bug request code --> <script type="text/javascript" src="jquery_v1_x.js"></script> <script type="text/javascript"> window.ATL_JQ_PAGE_PROPS = { "triggerFunction": function(showCollectorDialog) { //Requires that jQuery is available! jQuery("#feedback-button").click(function(e) { e.preventDefault(); showCollectorDialog(); }); } }; </script> <!-- end JIRA abug request code --> <script type="text/javascript"> <!-- function showMe (it, box) { var vis = (box.checked) ? "block" : "none"; var vis2 = (box.checked) ? "none" : "block"; document.getElementById(it).style.display = vis; document.getElementById('div2').style.display = vis2; } //--> </script> <div class="panel panel-success"> <div class="panel-heading"> <b>Select Target Platform</b> </div> <div class="panel-default"> <div class="panel-body"> <p>Click on the green buttons that describe your target platform. Only supported platforms will be shown. By downloading and using the software, you agree to fully comply with the terms and conditions of the <a href="https://docs.nvidia.com/hpc-sdk/eula/index.html" target="_blank">HPC SDK Software License Agreement</a>.</p> <form> <input name="c1" onclick="showMe('div1', this)" type="checkbox"> <b>I accept the license agreement</b> </form> <div id="div1" style="display: none"> <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseOne"><font color="#76B900">Linux x86_64</font></a> </div> <div class="panel-collapse collapse in" id="collapseOne"> <div class="panel-body"> <!-- Start Downloads --> <!--collapsebutton1--> <p><b><i>Bundled with the newest CUDA version (12.6)</i></b></p> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86slimtar" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 (tar file)</button></p> <div class="collapse" id="collapse86slimtar"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">wget https://developer.download.nvidia.com/hpc-sdk/24.11/nvhpc_2024_2411_Linux_x86_64_cuda_12.6.tar.gz</span> <span class="hpcsdkBash">tar xpzf nvhpc_2024_2411_Linux_x86_64_cuda_12.6.tar.gz</span> <span class="hpcsdkBash">nvhpc_2024_2411_Linux_x86_64_cuda_12.6/install</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location. For example, if you are installing into the /opt directory, you may need to run as root or with sudo.</p> </div> </div> <!--collapsebutton2--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86slimdnf" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 RHEL/Rocky (dnf)</button></p> <div class="collapse" id="collapse86slimdnf"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo dnf config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo dnf install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton3--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86slimyum" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 RHEL/Rocky (yum)</button></p> <div class="collapse" id="collapse86slimyum"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo yum-config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo yum install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton4--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86slimsuse" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 SLES/SUSE (zypper)</button></p> <div class="collapse" id="collapse86slimsuse"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo zypper addrepo https://developer.download.nvidia.com/hpc-sdk/sles/nvhpc.repo</span> <span class="hpcsdkBash">sudo zypper install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton5--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86slimapt" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 Ubuntu (apt)</button></p> <div class="collapse" id="collapse86slimapt"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg</span> <span class="hpcsdkBash">echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list</span> <span class="hpcsdkBash">sudo apt-get update -y</span> <span class="hpcsdkBash">sudo apt-get install -y nvhpc-24-11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton6--> <p><b><i>Bundled with the newest plus two previous CUDA versions (12.6, 11.8)</i></b></p> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86tar" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 (tar file)</button></p> <div class="collapse" id="collapse86tar"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">wget https://developer.download.nvidia.com/hpc-sdk/24.11/nvhpc_2024_2411_Linux_x86_64_cuda_multi.tar.gz</span> <span class="hpcsdkBash">tar xpzf nvhpc_2024_2411_Linux_x86_64_cuda_multi.tar.gz</span> <span class="hpcsdkBash">nvhpc_2024_2411_Linux_x86_64_cuda_multi/install</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location. For example, if you are installing into the /opt directory, you may need to run as root or with sudo.</p> </div> </div> <!--collapsebutton7--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86dnf" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 RHEL/Rocky (dnf)</button></p> <div class="collapse" id="collapse86dnf"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo dnf config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo dnf install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton8--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86yum" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 RHEL/Rocky (yum)</button></p> <div class="collapse" id="collapse86yum"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo yum-config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo yum install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton9--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86suse" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 SLES/SUSE (zypper)</button></p> <div class="collapse" id="collapse86suse"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo zypper addrepo https://developer.download.nvidia.com/hpc-sdk/sles/nvhpc.repo</span> <span class="hpcsdkBash">sudo zypper install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton10--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapse86apt" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux x86_64 Ubuntu (apt)</button></p> <div class="collapse" id="collapse86apt"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg</span> <span class="hpcsdkBash">echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list</span> <span class="hpcsdkBash">sudo apt-get update -y</span> <span class="hpcsdkBash">sudo apt-get install -y nvhpc-24-11-cuda-multi</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <p>The checksums for the installer and patches can be found in <a href="https://developer.download.nvidia.com/hpc-sdk/24.11/md5sum.txt" target="blank">Installer Checksums.</a></p> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseThree"><font color="#76B900">Linux Arm Server</font></a> </div> <div class="panel-collapse collapse" id="collapseThree"> <div class="panel-body"> <!--collapsebutton19--> <p><b><i>Bundled with the newest CUDA version (12.6)</i></b></p> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmslimtar" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server (tar file)</button></p> <div class="collapse" id="collapsearmslimtar"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">wget https://developer.download.nvidia.com/hpc-sdk/24.11/nvhpc_2024_2411_Linux_aarch64_cuda_12.6.tar.gz</span> <span class="hpcsdkBash">tar xpzf nvhpc_2024_2411_Linux_aarch64_cuda_12.6.tar.gz</span> <span class="hpcsdkBash">nvhpc_2024_2411_Linux_aarch64_cuda_12.6/install</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location. For example, if you are installing into the /opt directory, you may need to run as root or with sudo.</p> </div> </div> <!--collapsebutton20--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmslimdnf" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server RHEL/Rocky (dnf)</button></p> <div class="collapse" id="collapsearmslimdnf"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo dnf config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo dnf install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton21--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmslimyum" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server RHEL/Rocky (yum)</button></p> <div class="collapse" id="collapsearmslimyum"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo yum-config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo yum install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton22--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmslimsuse" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server SLES/SUSE (zypper)</button></p> <div class="collapse" id="collapsearmslimsuse"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo zypper addrepo https://developer.download.nvidia.com/hpc-sdk/sles/nvhpc.repo</span> <span class="hpcsdkBash">sudo zypper install -y nvhpc-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton23--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmslimapt" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server Ubuntu (apt)</button></p> <div class="collapse" id="collapsearmslimapt"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg</span> <span class="hpcsdkBash">echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/arm64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list</span> <span class="hpcsdkBash">sudo apt-get update -y</span> <span class="hpcsdkBash">sudo apt-get install -y nvhpc-24-11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton24--> <p><b><i>Bundled with the newest plus two previous CUDA versions (12.6, 11.8)</i></b></p> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmtar" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server (tar file)</button></p> <div class="collapse" id="collapsearmtar"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">wget https://developer.download.nvidia.com/hpc-sdk/24.11/nvhpc_2024_2411_Linux_aarch64_cuda_multi.tar.gz</span> <span class="hpcsdkBash">tar xpzf nvhpc_2024_2411_Linux_aarch64_cuda_multi.tar.gz</span> <span class="hpcsdkBash">nvhpc_2024_2411_Linux_aarch64_cuda_multi/install</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location. For example, if you are installing into the /opt directory, you may need to run as root or with sudo.</p> </div> </div> <!--collapsebutton25--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmdnf" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server RHEL/Rocky (dnf)</button></p> <div class="collapse" id="collapsearmdnf"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo dnf config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo dnf install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton26--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmyum" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server RHEL/Rocky (yum)</button></p> <div class="collapse" id="collapsearmyum"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo yum-config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo</span> <span class="hpcsdkBash">sudo yum install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton27--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmsuse" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server SLES/SUSE (zypper)</button></p> <div class="collapse" id="collapsearmsuse"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">sudo zypper addrepo https://developer.download.nvidia.com/hpc-sdk/sles/nvhpc.repo</span> <span class="hpcsdkBash">sudo zypper install -y nvhpc-cuda-multi-24.11</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <!--collapsebutton28--> <p><button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapsearmapt" aria-expanded="false" aria-controls="collapseExample" style="width:380px;">Linux Arm Server Ubuntu (apt)</button></p> <div class="collapse" id="collapsearmapt"> <div class="card card-body" style="margin-bottom:1em;"> <p>Installation Instructions</p> <pre class="hpcsdkBashBlock"><code> <span class="hpcsdkBash">curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg</span> <span class="hpcsdkBash">echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/arm64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list</span> <span class="hpcsdkBash">sudo apt-get update -y</span> <span class="hpcsdkBash">sudo apt-get install -y nvhpc-24-11-cuda-multi</span> </code></pre> <p style="margin-top:1em;">Be sure you invoke the install command with the permissions necessary for installing into the desired location.</p> </div> </div> <p>The checksums for the installer and patches can be found in <a href="https://developer.download.nvidia.com/hpc-sdk/24.11/md5sum.txt" target="blank">Installer Checksums.</a></p> </div> </div> </div> <!-- End Downloads --> <div class="panel panel-default"> <div class="panel-heading"> <a data-parent="#accordion" data-toggle="collapse" href="#collapseFour"><font color="#76B900">Windows x64</font></a> </div> <div class="panel-collapse collapse" id="collapseFour"> <div class="panel-body"> <p><b><i>The NVIDIA HPC SDK for Windows will be available at a later date.</i></b></p> </div> </div> </div> </div> </div> </div> </div> </div> <center> <a class="btn btn-success" href="https://docs.nvidia.com/hpc-sdk/index.html" target="_blank">Documentation </a> <a class="btn btn-success" href="/nvidia-hpc-sdk-releases" target="_blank">HPC SDK Releases </a> </center> <hr> <h2>Additional Resources</h2> <br> <div class="row ac-font"> <div class="col-sm-6 ac-icon padding-sm-bottom"> <p> <a href=""><i class="fa fa-certificate"></i></a> <a class="zonefont" href="https://developer.nvidia.com/blog/" target="_blank">Blogs</a> </p> </div> <div class="col-sm-6 ac-icon padding-sm-bottom"> <p> <a href=""><i class="fa fa-users"></i></a> <a class="zonefont" href="https://forums.developer.nvidia.com/c/accelerated-computing/5" target="_blank">Forums</a> </p> </div> </div> <div class="row ac-font"> <div class="col-sm-6 ac-icon padding-sm-bottom"> <p> <a href=""><i class="fa fa-gavel"></i></a> <a class="zonefont" href="https://docs.nvidia.com/hpc-sdk/eula/index.html" target="_blank">Software License Agreement</a> </p> </div> </div> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous"> </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="nv-modal" class="nv-modal nv-modal--closed"> <div class="container"> <div class="col-xl-8 offset-xl-2 col-lg-12 col-md-12 col-sm-12"> <div class="nv-modal__content"> <button type="button" class="modal-form__close js-close-button" aria-label="Close"> <svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M9.18359 1.49609L5.90234 4.75L9.15625 8.00391L9.62109 8.46875L8.71875 9.39844L8.25391 8.93359L5 5.67969L1.74609 8.93359L1.28125 9.39844L0.351562 8.46875L0.816406 8.00391L4.07031 4.75L0.816406 1.49609L0.351562 1.03125L1.28125 0.101562L1.74609 0.566406L5 3.84766L8.25391 0.59375L8.71875 0.128906L9.64844 1.03125L9.18359 1.49609Z" fill="white"/> </svg> </button> <div id="modal-header" class="nv-modal__header"> </div> <div class="nv-modal__body"> <div data-react-class="Webform" data-react-props="{"formId":189}" data-react-cache-id="Webform-0"></div> </div> </div> </div> </div> </div> <div class="nv-modal-backdrop"></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 type="text/javascript" charset="utf-8"> const nvModalConfig = { cookieName: 'hpc', cookieExpiration: '90' } </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/798-8f26177f1189c7399fb3.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/367-0b2e82a8016bebbc82b5.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/900-34f3bf570904cbfb5a16.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/application-54bf18784eb1ee5cdece.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/ls_track-4ba11c63b23b3f4ff0d5.js" defer="defer"></script> <script src="https://dirms4qsy6412.cloudfront.net/packs/js/nv-modal-43f8e3ca7b0b1d3fde73.js" defer="defer"></script> </body> </html>