<?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 Matrix Library for C++ with MKL in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804520#M3333</link>
    <description>Gennady, for now only gemm (shown in the last two figures) and geev are used thru a C++ wrapper/binding to MKL (yes it's linked to MKL's lib). I wrote all O(n^2) and O(n) functions which are quite efficient as you can see in the benchmarks. However I'm looking for more wrappers of O(n^3) MKL calls.&lt;BR /&gt;&lt;BR /&gt;Hui</description>
    <pubDate>Thu, 10 Feb 2011 08:32:33 GMT</pubDate>
    <dc:creator>Hui_Chen</dc:creator>
    <dc:date>2011-02-10T08:32:33Z</dc:date>
    <item>
      <title>Matrix Library for C++ with MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804518#M3331</link>
      <description>Hi all,&lt;BR /&gt;&lt;BR /&gt;Tired of writing dgemm(transa, transb, m, n, , 1, a, lda, b, ldb, 0, c, ldc) when 
multiplying two matrices? My Matrix Library for C++ is here to the 
rescue -- now you can write matrix operations in the most natural way 
like c = a*b !&lt;BR /&gt;
&lt;BR /&gt;Here's the project's page:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://huichen.org/mlcpp" target="_blank"&gt;http://huichen.org/mlcpp&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Mlcpp uses MKL (also takes GotoBlas and Atlas) to handle matrix multiplication so it's much faster than some existing C++ template libraries such as Eigen (which provides similar interfaces as mlcpp but has its own implementation of blas). See the benchmarks:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://huichen.org/mlcpp/benchmark.html"&gt;http://huichen.org/mlcpp/benchmark.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Please feel free to give it a try and let me know what you think.&lt;BR /&gt;&lt;SPAN style="color: #888888;"&gt;&lt;BR /&gt;Hui&lt;/SPAN&gt;</description>
      <pubDate>Wed, 09 Feb 2011 22:08:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804518#M3331</guid>
      <dc:creator>Hui_Chen</dc:creator>
      <dc:date>2011-02-09T22:08:27Z</dc:date>
    </item>
    <item>
      <title>Matrix Library for C++ with MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804519#M3332</link>
      <description>&lt;DIV id="_mcePaste"&gt;Hui, that's not completely clear which functionality do you use from MKL?&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;or you just link mlcpp with MKL lib's?&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;--Gennady&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 10 Feb 2011 07:08:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804519#M3332</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2011-02-10T07:08:56Z</dc:date>
    </item>
    <item>
      <title>Matrix Library for C++ with MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804520#M3333</link>
      <description>Gennady, for now only gemm (shown in the last two figures) and geev are used thru a C++ wrapper/binding to MKL (yes it's linked to MKL's lib). I wrote all O(n^2) and O(n) functions which are quite efficient as you can see in the benchmarks. However I'm looking for more wrappers of O(n^3) MKL calls.&lt;BR /&gt;&lt;BR /&gt;Hui</description>
      <pubDate>Thu, 10 Feb 2011 08:32:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804520#M3333</guid>
      <dc:creator>Hui_Chen</dc:creator>
      <dc:date>2011-02-10T08:32:33Z</dc:date>
    </item>
    <item>
      <title>Matrix Library for C++ with MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804521#M3334</link>
      <description>well, and what are performance overhead do you have with dgemm compare with the pure dgemm calling?</description>
      <pubDate>Thu, 10 Feb 2011 09:10:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804521#M3334</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2011-02-10T09:10:13Z</dc:date>
    </item>
    <item>
      <title>Matrix Library for C++ with MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804522#M3335</link>
      <description>The operator * is just a thin wrapper of gemm calls - whether it's sgemm or zgemm is determined at compile-time so there's no run-time panelty. The only overhead is that it allocates a temporary MxN matrix inside the call to save the result while you can use the same temporary array when doing gemm in C, though the time spent on allocating the temporary matrix is negnectable.</description>
      <pubDate>Thu, 10 Feb 2011 16:15:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Matrix-Library-for-C-with-MKL/m-p/804522#M3335</guid>
      <dc:creator>Hui_Chen</dc:creator>
      <dc:date>2011-02-10T16:15:45Z</dc:date>
    </item>
  </channel>
</rss>

