<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic provide integer type BLAS routines? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118192#M24770</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Is there any plan to provide BLAS routines for integer types in MKL? &amp;nbsp;GEMM is the prime example I'm thinking of.&lt;/P&gt;

&lt;P&gt;There is a small but growing literature in deep learning on the use of reduced precision (relative to float32) to speed up these computations. &amp;nbsp;A few manual implementations have been published using Intel vectorized integer math instructions and have demonstrated good computation speedup (which to me is the important part, rather than the memory savings). &amp;nbsp;This seems like an excellent opportunity for Intel-MKL to lead. :) &amp;nbsp;Would gladly use float16 if that was an option, but 8 bit values are likely to be useful as well, at least for fast inference. &amp;nbsp;&lt;/P&gt;

&lt;P&gt;Perhaps the main difficulty relative to floating point GEMM is handling overflow? &amp;nbsp;Prior deep learning work has sorted out at least one reasonable solution which is to accumulate the answer in extended precision (e.g. int8 -&amp;gt; int16) and then let the user decide how to round back to the input precision, if desired. &amp;nbsp;The risk of saturation in intermediate computation might just have to be accepted by the user?&lt;/P&gt;

&lt;P&gt;Seems like otherwise the blocking and cache management would be the same as existing GEMM. &amp;nbsp;But I'm no expert...is there something more fundamental which makes this a bad idea or rather difficult to implement relative to floating point?&lt;/P&gt;

&lt;P&gt;Thoughts? &amp;nbsp;&lt;/P&gt;

&lt;P&gt;(I could re-post in MKL-DNN git? &amp;nbsp;But since GEMM is proprietary in MKL I would imagine that so would integer GEMM.)&lt;/P&gt;

&lt;P&gt;Thank you,&lt;/P&gt;

&lt;P&gt;Adam&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Mar 2017 00:44:10 GMT</pubDate>
    <dc:creator>Adam_S_5</dc:creator>
    <dc:date>2017-03-14T00:44:10Z</dc:date>
    <item>
      <title>provide integer type BLAS routines?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118192#M24770</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Is there any plan to provide BLAS routines for integer types in MKL? &amp;nbsp;GEMM is the prime example I'm thinking of.&lt;/P&gt;

&lt;P&gt;There is a small but growing literature in deep learning on the use of reduced precision (relative to float32) to speed up these computations. &amp;nbsp;A few manual implementations have been published using Intel vectorized integer math instructions and have demonstrated good computation speedup (which to me is the important part, rather than the memory savings). &amp;nbsp;This seems like an excellent opportunity for Intel-MKL to lead. :) &amp;nbsp;Would gladly use float16 if that was an option, but 8 bit values are likely to be useful as well, at least for fast inference. &amp;nbsp;&lt;/P&gt;

&lt;P&gt;Perhaps the main difficulty relative to floating point GEMM is handling overflow? &amp;nbsp;Prior deep learning work has sorted out at least one reasonable solution which is to accumulate the answer in extended precision (e.g. int8 -&amp;gt; int16) and then let the user decide how to round back to the input precision, if desired. &amp;nbsp;The risk of saturation in intermediate computation might just have to be accepted by the user?&lt;/P&gt;

&lt;P&gt;Seems like otherwise the blocking and cache management would be the same as existing GEMM. &amp;nbsp;But I'm no expert...is there something more fundamental which makes this a bad idea or rather difficult to implement relative to floating point?&lt;/P&gt;

&lt;P&gt;Thoughts? &amp;nbsp;&lt;/P&gt;

&lt;P&gt;(I could re-post in MKL-DNN git? &amp;nbsp;But since GEMM is proprietary in MKL I would imagine that so would integer GEMM.)&lt;/P&gt;

&lt;P&gt;Thank you,&lt;/P&gt;

&lt;P&gt;Adam&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Mar 2017 00:44:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118192#M24770</guid>
      <dc:creator>Adam_S_5</dc:creator>
      <dc:date>2017-03-14T00:44:10Z</dc:date>
    </item>
    <item>
      <title>Great question ... please</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118193#M24771</link>
      <description>&lt;P&gt;Great question ... please take a look at this recent presentation (&lt;A href="http://www.netlib.org/utk/people/JackDongara/WEB-PAGES/Batched-BLAS-2017/talk12-gurney.pdf"&gt;www.netlib.org/utk/people/JackDongara/WEB-PAGES/Batched-BLAS-2017/talk12-gurney.pdf&lt;/A&gt;) from the February 2017 Workshop on Batched, Reproducible, and Reduced Precision BLAS&amp;nbsp;- main site located here:(&lt;A href="http://www.netlib.org/utk/people/JackDongarra/WEB-PAGES/Batched-BLAS-2017/"&gt;www.netlib.org/utk/people/JackDongarra/WEB-PAGES/Batched-BLAS-2017/&lt;/A&gt;).&lt;/P&gt;</description>
      <pubDate>Tue, 14 Mar 2017 01:00:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118193#M24771</guid>
      <dc:creator>Shane_S_Intel</dc:creator>
      <dc:date>2017-03-14T01:00:17Z</dc:date>
    </item>
    <item>
      <title>Wow!  Great to see a lot of</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118194#M24772</link>
      <description>&lt;P&gt;Wow! &amp;nbsp;Great to see a lot of work is already going into this. &amp;nbsp;Looking forward to MKL 2018!!&lt;/P&gt;</description>
      <pubDate>Tue, 14 Mar 2017 03:23:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118194#M24772</guid>
      <dc:creator>Adam_S_5</dc:creator>
      <dc:date>2017-03-14T03:23:20Z</dc:date>
    </item>
    <item>
      <title>Adam, we will post</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118195#M24773</link>
      <description>&lt;P&gt;Adam, we will post announsment when MKL 2018 beta will be available. Then you may take it and evaluate how it will work.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Mar 2017 12:21:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/provide-integer-type-BLAS-routines/m-p/1118195#M24773</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2017-03-14T12:21:34Z</dc:date>
    </item>
  </channel>
</rss>

