<?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 Re: 'omatadd' and aliasing in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/omatadd-and-aliasing/m-p/1576363#M35882</link>
    <description>&lt;P&gt;The kind of operation you are doing is supported in oneMKL 2023.0 and later. The requirements are better described in the DPCPP documentation (&lt;A href="https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-dpcpp/2024-0/omatadd.html)," target="_blank" rel="noopener"&gt;https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-dpcpp/2024-0/omatadd.html),&lt;/A&gt;&amp;nbsp;specifically:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may point to the same memory if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;op(A)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is non-transpose and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;lda&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;=&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldc;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;B&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may point to the same memory if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;op(B)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is non-transpose and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldb&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;=&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I agree that the documentation for the C API is incomplete and will make a note to try to get that updated. Thank you for pointing this out.&lt;/P&gt;</description>
    <pubDate>Wed, 28 Feb 2024 19:42:54 GMT</pubDate>
    <dc:creator>Andrew_Barker</dc:creator>
    <dc:date>2024-02-28T19:42:54Z</dc:date>
    <item>
      <title>'omatadd' and aliasing</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/omatadd-and-aliasing/m-p/1576355#M35881</link>
      <description>&lt;P&gt;Functions 'omatadd' perform the following operation:&lt;BR /&gt;C := alpha*op(A) + beta*op(B)&lt;/P&gt;&lt;P&gt;In the documentation for 'omatadd':&lt;BR /&gt;&lt;A href="https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-0/mkl-omatadd.html" target="_blank" rel="noopener"&gt;https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-0/mkl-omatadd.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;It mentions:&lt;BR /&gt;&amp;gt; Note that different arrays must not overlap.&lt;/P&gt;&lt;P&gt;However, compared to other functions, here each value in the inputs is involved in only one resulting value in the outputs. In theory, if this function were to be implemented with a naive C for-loop, it should work correctly even if one of the input and output arrays is aliased.&lt;/P&gt;&lt;P&gt;From some experiments, it seems to work correctly for the following operation:&lt;BR /&gt;B := alpha*A + 1*B&lt;/P&gt;&lt;P&gt;i.e. passing the same input under both B and C, which is unclear whether it counts as "overlap" or not.&lt;/P&gt;&lt;P&gt;Is this function guaranteed to provide the correct output if one of the inputs with no-trans "op" is passed as the output C?&lt;/P&gt;&lt;P&gt;i.e. is it possible to use this function to perform the following operation?&lt;BR /&gt;B := alpha*op(A) + beta*B&lt;/P&gt;&lt;P&gt;If so, would be very helpful to add this in the documentation, or at the very least to clarify whether aliasing counts as arrays "overlapping" or not.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Feb 2024 19:16:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/omatadd-and-aliasing/m-p/1576355#M35881</guid>
      <dc:creator>DavidCortes</dc:creator>
      <dc:date>2024-02-28T19:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: 'omatadd' and aliasing</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/omatadd-and-aliasing/m-p/1576363#M35882</link>
      <description>&lt;P&gt;The kind of operation you are doing is supported in oneMKL 2023.0 and later. The requirements are better described in the DPCPP documentation (&lt;A href="https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-dpcpp/2024-0/omatadd.html)," target="_blank" rel="noopener"&gt;https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-dpcpp/2024-0/omatadd.html),&lt;/A&gt;&amp;nbsp;specifically:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may point to the same memory if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;op(A)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is non-transpose and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;lda&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;=&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldc;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;B&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may point to the same memory if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;op(B)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is non-transpose and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldb&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;=&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ldc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I agree that the documentation for the C API is incomplete and will make a note to try to get that updated. Thank you for pointing this out.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Feb 2024 19:42:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/omatadd-and-aliasing/m-p/1576363#M35882</guid>
      <dc:creator>Andrew_Barker</dc:creator>
      <dc:date>2024-02-28T19:42:54Z</dc:date>
    </item>
  </channel>
</rss>

