blob: 9eb4088834fdaa7b214c09d025e7df60f34c3abb [file] [log] [blame]
<!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="next"/><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>next</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/docs/next/installation" target="_self">Docs</a></li><li class=""><a href="/docs/next/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 10/30/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>