<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache SINGA-3.0.0 Release Notes · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  --&gt;"/><meta name="docsearch:version" content="3.1.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache SINGA-3.0.0 Release Notes · Apache SINGA"/><meta property="og:type" content="website"/><meta property="og:url" content="https://singa.apache.org/"/><meta property="og:description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  --&gt;"/><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"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,700"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Baloo+Paaji+2&amp;family=Source+Sans+Pro:wght@200;300&amp;display=swap"/><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 class="sideNavVisible separateOnPageNav"><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/3.1.0/installation" target="_self">Docs</a></li><li class=""><a href="/docs/3.1.0/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 class="docMainWrapper wrapper"><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/releases/RELEASE_NOTES_3.0.0.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Apache SINGA-3.0.0 Release Notes</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  -->
<p>SINGA is a distributed deep learning library.</p>
<p>This release includes following changes:</p>
<ul>
<li><p>Code quality has been promoted by introducing linting check in CI and auto
code formatter. For linting, the tools, <code>cpplint</code> and <code>pylint</code>, are used and
configured to comply
<a href="http://google.github.io/styleguide/">google coding styles</a> details in
<code>tool/linting/</code>. Similarly, formatting tools, <code>clang-format</code> and <code>yapf</code>
configured with google coding styles, are the recommended one for developers
to clean code before submitting changes, details in <code>tool/code-format/</code>.
<a href="https://lgtm.com">LGTM</a> is enabled on Github for code quality check; License
check is also enabled.</p></li>
<li><p>New Tensor APIs are added for naming consistency, and feature enhancement:</p>
<ul>
<li>size(), mem_size(), get_value(), to_proto(), l1(), l2(): added for the sake
of naming consistency</li>
<li>AsType(): convert data type between <code>float</code> and <code>int</code></li>
<li>ceil(): perform element-wise ceiling of the input</li>
<li>concat(): concatenate two tensor</li>
<li>index selector: e.g. tensor1[:,:,1:,1:]</li>
<li>softmax(in, axis): allow to perform softmax on a axis on a multi-dimensional
tensor</li>
</ul></li>
<li><p>14 new operators are added into the autograd module: Gemm, GlobalAveragePool,
ConstantOfShape, Dropout, ReduceSum, ReduceMean, Slice, Ceil, Split, Gather,
Tile, NonZero, Cast, OneHot. Their unit tests are added as well.</p></li>
<li><p>14 new operators are added to sonnx module for both backend and frontend:
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Gemm">Gemm</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#GlobalAveragePool">GlobalAveragePool</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#ConstantOfShape">ConstantOfShape</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Dropout">Dropout</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#ReduceSum">ReduceSum</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#ReduceMean">ReduceMean</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Slice">Slice</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Ceil">Ceil</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Split">Split</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Gather">Gather</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Tile">Tile</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#NonZero">NonZero</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Cast">Cast</a>,
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#OneHot">OneHot</a>.
Their tests are added as well.</p></li>
<li><p>Some ONNX models are imported into SINGA, including
<a href="https://github.com/onnx/models/tree/master/text/machine_comprehension/bert-squad">Bert-squad</a>,
<a href="https://github.com/onnx/models/tree/master/vision/body_analysis/arcface">Arcface</a>,
<a href="https://github.com/onnx/models/tree/master/vision/body_analysis/emotion_ferplus">FER+ Emotion</a>,
<a href="https://github.com/onnx/models/tree/master/vision/classification/mobilenet">MobileNet</a>,
<a href="https://github.com/onnx/models/tree/master/vision/classification/resnet">ResNet18</a>,
<a href="https://github.com/onnx/models/tree/master/vision/object_detection_segmentation/tiny_yolov2">Tiny Yolov2</a>,
<a href="https://github.com/onnx/models/tree/master/vision/classification/vgg">Vgg16</a>,
and Mnist.</p></li>
<li><p>Some operators now support
<a href="https://github.com/onnx/onnx/blob/master/docs/Broadcasting.md#multidirectional-broadcasting">multidirectional broadcasting</a>,
including Add, Sub, Mul, Div, Pow, PRelu, Gemm</p></li>
<li><p>[Distributed training with communication optimization].
<a href="./python/singa/opt.py">DistOpt</a> has implemented multiple optimization
techniques, including gradient sparsification, chunk transmission, and
gradient compression.</p></li>
<li><p>Computational graph construction at the CPP level. The operations submitted to
the Device are buffered. After analyzing the dependency, the computational
graph is created, which is further analyzed for speed and memory optimization.
To enable this feature, use the <a href="./python/singa/module.py">Module API</a>.</p></li>
<li><p>New website based on Docusaurus. The documentation files are moved to a
separate repo <a href="https://github.com/apache/singa-doc">singa-doc</a>. The static
website files are stored at
<a href="https://github.com/apache/singa-site">singa-site</a>.</p></li>
<li><p>DNNL(<a href="https://github.com/intel/mkl-dnn">Deep Neural Network Library</a>), powered
by Intel, is integrated into
<code>model/operations/[batchnorm|pooling|convolution]</code>, the changes is opaque to
the end users. The current version is dnnl v1.1 which replaced previous
integration of mkl-dnn v0.18. The framework could boost the performance of dl
operations when executing on CPU. The dnnl dependency is installed through
conda.</p></li>
<li><p>Some Tensor APIs are marked as deprecated which could be replaced by
broadcast, and it can support better on multi-dimensional operations. These
APIs are add_column(), add_row(), div_column(), div_row(), mult_column(),
mult_row()</p></li>
<li><p>Conv and Pooling are enhanced to support fine-grained padding like (2,3,2,3),
and
<a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Conv">SAME_UPPER, SAME_LOWER</a>
pad mode and shape checking.</p></li>
<li><p>Reconstruct soonx,</p>
<ul>
<li>Support two types of weight value (Initializer and Constant Node);</li>
<li>For some operators (BatchNorm, Reshape, Clip, Slice, Gather, Tile, OneHot),
move some inputs to its attributes;</li>
<li>Define and implement the type conversion map.</li>
</ul></li>
</ul>
</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/19/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></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 © 2023
   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>