CINXE.COM
Developer Resources For Retail Industries | 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="4ECOKLBzQr7C7lp_w3oNIwpHy1SujoFe8zdz7IyWYDHBbHR6liiIuDHw3_RNq7dzeKNeLDjXi3Z2Cau3voCCWg" /> <meta name="csp-nonce" /> <title>Developer Resources For Retail Industries | NVIDIA Developer</title> <link rel="canonical" href="https://developer.nvidia.com/industries/retail"> <link rel="alternate" href="https://developer.nvidia.com/industries/retail" hreflang="x-default"> <link rel="alternate" href="https://developer.nvidia.com/industries/retail" hreflang="en-us"> <link rel="alternate" href="https://developer.nvidia.cn/industries/retail" hreflang="zh-cn"> <meta property="og:site_name" content="NVIDIA Developer"> <meta property="og:title" content="Developer Resources For Retail Industries"> <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/industries/retail"> <meta name="twitter:title" content="Developer Resources For Retail Industries"> <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="Retail / Consumer Packaged Goods"> <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="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-industries-retail page-industries-retail" data-id="771"> <div class="mobile-display sct--lt-gry1 sct-bg--s hero-image--1"> <div class="cntnr--cw"> <div class="row"> <div style="padding:36px 0px;" class="col-lg-6 col-md-6 col-sm-6 col-xs-12"> <h1 class="h--large">Developer Resources for Retail and CPG</h1> <p class="content-l ">A hub of news, SDKs, technical resources, and more for developers working in the retail and consumer packaged goods (CPG) industry. </p> </div> </div> </div> </div> <div class="mobile sct--lt-gry1"> <div class="row"> <div style="padding:36px" class="col-lg-6 col-md-6 col-sm-6 col-xs-12"> <h1 class="h--large">Developer Resources for Retail and CPG</h1> <p class="content-l ">A hub of news, SDKs, technical resources, and more for developers working in the retail and consumer packaged goods (CPG) industry. </p> <a class="cta--prim" href="">Learn More</a> </div> </div> <img class="img-responsive" src="https://developer.download.nvidia.com/images/nvidia-dev-retail-biab-p.jpg"> </div> <style> @media only screen and (min-width: 1025px){ .hero-image--1 { background-image: url(https://developer.download.nvidia.com/images/nvidia-dev-retail-biab-d.jpg); } .mobile { display:none; } } @media only screen and (min-width: 1024px) and (max-width: 1366px) { .hero-image--1 { background-image: url(https://developer.download.nvidia.com/images/nvidia-dev-retail-biab-l.jpg); } .mobile { display:none; } } @media only screen and (max-width: 1023px) { .hero-image--1 { background-image: url(https://developer.download.nvidia.com/images/nvidia-dev-retail-biab-t.jpg); } .mobile { display:none; } } @media only screen and (max-width: 659px) { .hero-image--1 { background-image: url(https://developer.download.nvidia.com/images/nvidia-dev-retail-biab-p.jpg); } .mobile { display:block; } .mobile-display { display:none; } } </style> <style> #sample-banner-4 { background-image: url(https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gtc-lockup-333-background-png-bb300-d@2x.png); background-size: 2560px 280px; } @media only screen and (max-width: 1023px) { #sample-banner-4 { background-image: url(https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gtc-lockup-333-background-png-bb300-t@2x.png); background-size: 1024px 280px; } } @media only screen and (max-width: 659px) { .#sample-banner-4 { background-image: url(https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gtc-lockup-333-background-png-bb300-p@2x.png); background-size: 660px 280px; } } @media only screen and (min-width: 1024px) and (max-width: 1366px) { #sample-banner-4 { background-image: url(https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gtc-lockup-333-background-png-bb300-l@2x.png); background-size: 1366px 280px; } } </style> <style> .list { list-style: disc; margin-left: 16px; } </style> <!--<div id="join-nvd-banner" style="background: linear-gradient(rgb(153, 153, 153) 0%, rgb(102, 102, 102) 100%); padding: 1em 0px; color: white;" class=""> <div class="container"> <div class="col-12 text-center"> The NVIDIA Developer Program gives access to a wide range of SDKs, technical resources, and more for retail. <a href="/developer-program" target="_blank" class="cta--prim cta--m m-0 ml-2 ">Sign Up</a> </div> </div> </div>--> <section class="sct--m"> <div class="cntnr--cw"> <h2 class="h--medium txt-cntr">App Frameworks and SDKs</h2> <br> <!-- FIRST ROW --> <div class="row"> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA Metropolis</h3> <p><b>AI-Enabled Video Analytics </b></p> <br> <p>NVIDIA Metropolis features GPU-accelerated SDKs and developer tools that help developers optimally build, deploy, and scale AI-enabled video analytics and IoT applications—from the edge to the cloud.<p> <br> <strong><a class="cta--tert" href="https://developer.nvidia.com/metropolis" target="_blank">Learn More About Metropolis <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA NeMo</h3> <p><b>Generative AI</b></p> <br> <p>NVIDIA NeMoTM is an end-to-end, cloud-native framework for building, customizing, and deploying generative AI models. It includes training and inferencing frameworks, guardrailing toolkits, data curation tools, and pretrained models, offering enterprises an easy, cost-effective, and fast way to adopt generative AI.<p> <br> <strong><a class="cta--tert" href="https://www.nvidia.com/en-us/ai-data-science/generative-ai/nemo-framework/" target="_blank">Learn More About NeMo <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">RAPIDS Accelerator for Apache Spark</h3> <p><b>Data Science Software</b></p> <br> <p>The NVIDIA RAPIDS™ Accelerator for Apache Spark makes it possible to run entire data science workflows with high-speed GPU compute and parallelize data loading, data manipulation, and machine learning 5X faster and with 4X lower infrastructure costs with no code changes. <p> <br> <strong><a class="cta--tert" href="https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/apache-spark-3/" target="_blank">Learn More About Apache Spark <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA Riva</h3> <p><b>Multimodal Conversational AI</b></p> <br> <p>NVIDIA® Riva is a GPU-accelerated speech and translation AI software development kit for building and deploying fully customizable, real-time AI pipelines that deliver world-class accuracy in all clouds, on premises, at the edge, and on embedded devices.<p> <br> <strong><a class="cta--tert" href="https://developer.nvidia.com/riva" target="_blank">Learn More About Riva <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> </div> <br> <div class="row"> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA Morpheus</h3> <p><b>Cybersecurity</b></p> <br> <p>NVIDIA Morpheus is an open application framework that helps cybersecurity developers create optimized AI pipelines for filtering, processing, and classifying large volumes of real-time data. Bringing a new level of information security to the data center, cloud, and edge, Morpheus uses AI to identify, capture, and act on threats and anomalies that were previously impossible to identify.<p> <br> <strong><a class="cta--tert" href="https://developer.nvidia.com/morpheus-cybersecurity" target="_blank">Learn More About Morpheus <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA Omniverse</h3> <p><b>Simulation and Digital Twins</b></p> <br> <p>From designing true-to-reality 3D assets and environments to operating large-scale digital twins, NVIDIA Omniverse™ Enterprise is a computing platform that enables individuals and teams to develop <a target="_blank" href="https://www.nvidia.com/en-us/omniverse/usd/">Universal Scene Description (OpenUSD)</a>-based 3D workflows and applications.<p> <br> <strong><a class="cta--tert" href="https://www.nvidia.com/en-us/omniverse/" target="_blank">Learn More About Omniverse <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">NVIDIA Triton Inference Server</h3> <p><b>AI Model Deployment</b></p> <br> <p>NVIDIA Triton™ Inference Server lets teams run inference on trained machine learning or deep learning models from any framework on any processor—GPU, CPU, or other. It’s an open-source software that standardizes AI model deployment and execution across every workload.<p> <br> <strong><a class="cta--tert" href="https://developer.nvidia.com/triton-inference-server" target="_blank">Learn More About Triton Inference Server <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> <div class="col-md-3"> <h3 class="h--smallest txt-clr--blck">cuOpt</h3> <p><b>Accelerated Optimization</b></p> <br> <p>cuOpt helps teams solve complex routing problems with multiple constraints and deliver new capabilities, like dynamic rerouting, job scheduling, and robotic simulations, with subsecond solver response time.<p> <br> <strong><a class="cta--tert" href="https://developer.nvidia.com/cuopt-logistics-optimization" target="_blank">Learn More About cuOpt <span class="fas fa-angle-right fa-fw"></span></a></strong> </div> </div> </div> </section> <hr> <section class="sct--xs"> <h2 class="h--medium txt-cntr">Browse by Resource Type</h2> <br> <ul class="nav nav-tabs justify-content-center"> <li class="nav-item active"> <a class="nav-link active" data-toggle="tab" href="#blogs"><div class="p--medium"><strong>Blogs</strong></div></a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#gtc"> <div class="p--medium "><strong>GTC Sessions</strong></div> </a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#training"> <div class="p--medium "><strong>Training</strong></div> </a> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="blogs"> <section class="sct--xs"> <div class="cntnr--cw"> <div class="row"> <feed-aggregator categories='696' tags='all' per-page='4'></feed-aggregator> </div> <!--<center><a class="cta--scnd" href="" target="_blank">View all Resources </a></center>--> </div> </section> </div> <br> <div class="tab-pane" id="gtc"> <section class="sct--xs"> <div class="cntnr--cw"> <div id="nvidia-gallery-widget1" class="widget"></div> <script> window.nodWidgets = [{ id: 'nvidia-gallery-widget1', destination: 'https://www.nvidia.com/en-us/on-demand/playlist/playList-6211502b-7251-4964-b86e-58dc9f2523a8/', type: 'playlist', playlistId: 'playList-6211502b-7251-4964-b86e-58dc9f2523a8', header: '', }]; </script> <br> <center><a class="cta--scnd" href="https://www.nvidia.com/en-us/on-demand/playlist/playList-6211502b-7251-4964-b86e-58dc9f2523a8/" target="_blank">View all Resources </a></center> </div> </section> </div> <br> <div class="tab-pane" id="training"> <section class="sct--m"> <div class="cntnr--cw"> <div class="row"> <div class="col-md-4"> <div class="card"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest txt-clr--blck">Accelerating End-to-End Data Science Workflows</h3> <p>Learn how to build and execute end-to-end, GPU-accelerated data science workflows that let you quickly explore, iterate, and move your work into production. In this self-paced lab, you’ll learn how to use RAPIDS accelerated data science libraries to perform data analysis at scale with a wide variety of GPU-accelerated algorithms.</p> <br> <a class="cta--tert mt-auto" href="https://courses.nvidia.com/courses/course-v1:DLI+S-DS-01+V1/">Enroll Now <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-4"> <div class="card"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest txt-clr--blck">Generative AI Explained</h3> <p>Explore generative AI, which has recently taken the world by storm. Using neural networks to identify patterns and structures within existing data, it generates new content based on a variety of inputs. In this course, you’ll learn generative AI concepts, applications, and the challenges and opportunities of this exciting field.</p> <br> <a class="cta--tert mt-auto" href="https://courses.nvidia.com/courses/course-v1:DLI+S-FX-07+V1/">Enroll Now <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> <div class="col-md-4"> <div class="card"> <div class="card-cntnt-cntnr"> <div> <h3 class="h--smallest txt-clr--blck">Synthetic Data Generation for Training Computer Vision Models</h3> <p>Streamline synthetic data generation (SDG) using 3D assets into a single application—and modify the appearance and format of the data—with NVIDIA Omniverse Replicator. This lab highlights one of the ways deep learning tools and Omniverse can be used together to streamline deep learning workloads.</p> <br> <a class="cta--tert mt-auto" href="https://courses.nvidia.com/courses/course-v1:DLI+S-OV-10+V1/">Enroll Now <span class="fas fa-angle-right fa-fw"></span></a> </div> </div> </div> </div> </div> <br> <center><a class="cta--scnd" href="https://www.nvidia.com/en-us/training/" target="_blank">View All Courses</a></center> </div> </section> </div> </div> </section> <hr> <section class="sct--xs"> <div class="cntnr--narrow txt-cntr"> <h2 class="h--medium">NVIDIA Developer Program </h2> <p>To make sure you have the best resources to do your life’s work, we’ve created an online space devoted to your needs, with access to free SDKs, technical documentation, peer and domain expert help, and information on the right hardware to tackle the biggest challenges.</p> <br> <a class="cta--tert cta--cntr justify-content-center" href="https://developer.nvidia.com/developer-program" target="_blank">Join the NVIDIA Developer Program <span class="fas fa-angle-right fa-fw"></span></a> </div> </section> <section class="sct--xs sct--drk-gry4"> <div class="cntnr--cw"> <p class="content-l text-white txt-cntr">Sign up for the latest developer news from NVIDIA. </p> <center><a class="cta--prim" href="https://www.nvidia.com/en-us/preferences/email-signup/?section=developer-header" role="button" target="blank">Subscribe Now</a></center> <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/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> </body> </html>