<!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.0.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-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 © 2020
   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>