<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache SINGA · Distributed deep learning system</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Distributed deep learning system"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache SINGA · Distributed deep learning system"/><meta property="og:type" content="website"/><meta property="og:url" content="https://singa.apache.org/"/><meta property="og:description" content="Distributed deep learning system"/><meta property="og:image" content="https://singa.apache.org/img/singa_twitter_banner.jpeg"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://singa.apache.org/img/singa_twitter_banner.jpeg"/><link rel="shortcut icon" href="/img/favicon.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://singa.apache.org/blog/atom.xml" title="Apache SINGA Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://singa.apache.org/blog/feed.xml" title="Apache SINGA Blog RSS Feed"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="https://unpkg.com/vanilla-back-to-top@7.1.14/dist/vanilla-back-to-top.min.js"></script><script>
        document.addEventListener('DOMContentLoaded', function() {
          addBackToTop(
            {"zIndex":100}
          )
        });
        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/docs/installation" target="_self">Docs</a></li><li class=""><a href="/docs/source-repository" target="_self">Community</a></li><li class=""><a href="/blog/" target="_self">News</a></li><li class=""><a href="https://apache-singa.readthedocs.io/en/latest/" target="_self">API</a></li><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li><li class=""><a href="https://github.com/apache/singa" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div><div class="index-hero"><img style="display:none" src="/img/sg-botanic-coleen-rivas-unsplash.jpg" alt="increase priority"/><div class="index-hero-inner"><img alt="SINGA-hero-banner" class="index-hero-logo" src="/img/singa.png"/><h1 class="index-hero-project-tagline">A Distributed Deep Learning Library</h1><div class="index-ctas"><a class="button index-ctas-get-started-button" href="/docs/en/installation">Get Started</a><span class="index-ctas-github-button"><iframe src="https://ghbtns.com/github-btn.html?user=apache&amp;repo=singa&amp;type=star&amp;count=true&amp;size=large" frameBorder="0" scrolling="0" width="160" height="30" title="GitHub Stars"></iframe></span></div></div></div><div class="announcement"><div class="announcement-inner">Apache SINGA is an <a href="https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces57">Apache Top Level Project</a>, focusing on distributed training of deep learning and machine learning models</div></div><div class="mainContainer"><div class="container mainPageContainer paddingBottom paddingTop"><div class="wrapper"><div class="gridBlock"><div class="blockElement imageAlignSide imageAlignLeft twoByGridBlock"><div class="blockImage"><img src="/img/benchmark.png" alt="Scalbility"/></div><div class="blockContent"><h2><div><span><p>Scalablility</p>
</span></div></h2><div><span><p>SINGA <a href="./docs/dist-train">parallelizes the training and optimizes the communication cost</a> to improve training scalability.</p>
</span></div></div></div></div></div></div><div class="container mainPageContainer lightBackground paddingBottom paddingTop"><div class="wrapper"><div class="gridBlock"><div class="blockElement imageAlignSide imageAlignRight twoByGridBlock"><div class="blockContent"><h2><div><span><p>Efficiency</p>
</span></div></h2><div><span><p>SINGA <a href="./docs/graph">builds a computational graph</a> to optimizes the training speed and memory footprint.</p>
</span></div></div><div class="blockImage"><img src="/img/GraphOfMLP.png" alt="Efficiency"/></div></div></div></div></div><div class="container mainPageContainer paddingBottom paddingTop"><div class="wrapper"><div class="gridBlock"><div class="blockElement imageAlignSide imageAlignLeft twoByGridBlock"><div class="blockImage"><img src="/img/singav3.1-sw.png" alt="Usability"/></div><div class="blockContent"><h2><div><span><p>Usability</p>
</span></div></h2><div><span><p>SINGA has a simple <a href="./docs/software-stack">software stack and Python interface</a> to improve usability.</p>
</span></div></div></div></div></div></div><div class="productShowcaseSection paddingBottom"><h2 style="color:#904600">Users of Apache SINGA</h2><p>Apache SINGA powers the following organizations and companies...</p><div class="showcase"><a class="link" href="http://tech.163.com/17/0602/17/CLUL016I00098GJ5.html"><img src="/img/users/NetEase.jpg" alt="NetEase" title="NetEase"/><span class="caption">NetEase</span></a><a class="link" href="https://www.nuh.com.sg/Pages/Home.aspx"><img src="/img/users/nuhlogo.jpg" alt="NUH SG" title="NUH SG"/><span class="caption">NUH SG</span></a><a class="link" href="https://www.sgh.com.sg/"><img src="/img/users/sgh.png" alt="SGH SG" title="SGH SG"/><span class="caption">SGH SG</span></a><a class="link" href="https://www.ttsh.com.sg/Pages/default.aspx"><img src="/img/users/TTSH_Logo.gif" alt="TTSH SG" title="TTSH SG"/><span class="caption">TTSH SG</span></a><a class="link" href="https://www.juronghealthcampus.com.sg/"><img src="/img/users/juronghealth.png" alt="JurongHealth SG" title="JurongHealth SG"/><span class="caption">JurongHealth SG</span></a><a class="link" href="http://www.yzbigdata.com/"><img src="/img/users/yzBigData.png" alt="yzBigData" title="yzBigData"/><span class="caption">yzBigData</span></a><a class="link" href="https://shentilium.com/"><img src="/img/users/shentilium.png" alt="Shentilium" title="Shentilium"/><span class="caption">Shentilium</span></a><a class="link" href="http://www.foodlg.com/"><img src="/img/users/foodlg.png" alt="Foodlg" title="Foodlg"/><span class="caption">Foodlg</span></a><a class="link" href="https://medilot.com/technologies"><img src="/img/users/medilot.svg" alt="Medilot" title="Medilot"/><span class="caption">Medilot</span></a><a class="link" href="http://www.mzhtechnologies.com/index.html"><img src="/img/users/mzhtech.png" alt="MZH Tech" title="MZH Tech"/><span class="caption">MZH Tech</span></a><a class="link" href="https://www.secureage.com/"><img src="/img/users/SecureAge_Logo.png" alt="Secureage Technology" title="Secureage Technology"/><span class="caption">Secureage Technology</span></a></div><div class="more-users"><a class="button" href="/en/users">All Apache SINGA Users</a></div></div></div></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readthedocs.io/en/latest/">API Reference</a><a href="/docs/examples">Examples</a><a href="/docs/download-singa">Development</a></div><div><h5>Community</h5><a href="/en/users.html">User Showcase</a><a href="/docs/history-singa">SINGA History</a><a href="/docs/team-list">SINGA Team</a><a href="/blog">SINGA News</a><a href="https://github.com/apache/singa">GitHub</a><div class="social"><a class="github-button" href="https://github.com/apache/singa" data-count-href="/apache/singa/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">apache/singa-doc</a></div><div class="social"><a href="https://twitter.com/ApacheSINGA" class="twitter-follow-button">Follow @ApacheSINGA</a></div></div><div><h5>Apache Software Foundation</h5><a href="https://apache.org/" target="_blank" rel="noreferrer noopener">Foundation</a><a href="http://www.apache.org/licenses/" target="_blank" rel="noreferrer noopener">License</a><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noreferrer noopener">Sponsorship</a><a href="http://www.apache.org/foundation/thanks.html" target="_blank" rel="noreferrer noopener">Thanks</a><a href="http://www.apache.org/events/current-event" target="_blank" rel="noreferrer noopener">Events</a><a href="http://www.apache.org/security/" target="_blank" rel="noreferrer noopener">Security</a></div></section><div style="width:100%;text-align:center"><a href="https://apache.org/" target="_blank" rel="noreferrer noopener" class="ApacheOpenSource"><img src="/img/asf_logo_wide.svg" alt="Apache Open Source"/></a><section class="copyright" style="max-width:60%;margin:0 auto">Copyright © 2021
   The Apache Software Foundation. All rights reserved.
   Apache SINGA, Apache, the Apache feather logo, and
   the Apache SINGA project logos are trademarks of The
   Apache Software Foundation. All other marks mentioned
   may be trademarks or registered trademarks of their
   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script><script>
                document.addEventListener('keyup', function(e) {
                  if (e.target !== document.body) {
                    return;
                  }
                  // keyCode for '/' (slash)
                  if (e.keyCode === 191) {
                    const search = document.getElementById('search_input_react');
                    search && search.focus();
                  }
                });
              </script><script>
              var search = docsearch({
                
                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
                indexName: 'apache_singa',
                inputSelector: '#search_input_react',
                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
              });
            </script></body></html>