<?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:FP16 GEMM using AVX512 on Sapphire Rapids in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1571819#M35816</link>
    <description>&lt;P&gt;it could be done automatically without any specific options. &lt;/P&gt;&lt;P&gt;if PCM doesn't recognize usage of avx512_bf16&amp;nbsp;instruction by SPR, it looks like a PCM's problem.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;You might look at the main oneMKL product page and see the performance results of cblas_gemm_f16f16f32 routine.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Specifically - running this routine on my end on SPR ( lscpu | grep Mode : &lt;STRONG&gt;Model name:&amp;nbsp;&amp;nbsp;&amp;nbsp;Intel(R) Xeon(R) Platinum 8480+&lt;/STRONG&gt; ), I see the following performance results: &lt;/P&gt;&lt;P&gt;export KMP_AFFINITY=granularity=fine,compact,1,0&lt;/P&gt;&lt;P&gt;size == 4000 v 4000, GEMM bf16 performance == &lt;STRONG&gt;53314.2 ,GFlops&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;$ echo $MKLROOT/&lt;/P&gt;&lt;P&gt;/opt/intel/oneapi/mkl/2024.0/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;You could see that ~54 TFlops is far beyond of f32 theoretical performance peak and it means that bf16 instructions has been used by default.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;--Gennady&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Tue, 13 Feb 2024 08:16:16 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2024-02-13T08:16:16Z</dc:date>
    <item>
      <title>FP16 GEMM using AVX512 on Sapphire Rapids</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1570739#M35803</link>
      <description>&lt;P&gt;Is there any way to use AVX512-FP16 instructions on Intel Sapphire Rapids Xeon CPUs via the GEMM routines in mkl_cblas.h? When I use "cblas_gemm_f16f16f32", my system uses AVX512-FP32 instructions, as verified by PCM. Is there any way to use lower-precision floats directly in MKL? I'm using MKL 2024.0.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Feb 2024 22:51:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1570739#M35803</guid>
      <dc:creator>DerrickQuinn</dc:creator>
      <dc:date>2024-02-08T22:51:57Z</dc:date>
    </item>
    <item>
      <title>Re:FP16 GEMM using AVX512 on Sapphire Rapids</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1571819#M35816</link>
      <description>&lt;P&gt;it could be done automatically without any specific options. &lt;/P&gt;&lt;P&gt;if PCM doesn't recognize usage of avx512_bf16&amp;nbsp;instruction by SPR, it looks like a PCM's problem.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;You might look at the main oneMKL product page and see the performance results of cblas_gemm_f16f16f32 routine.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Specifically - running this routine on my end on SPR ( lscpu | grep Mode : &lt;STRONG&gt;Model name:&amp;nbsp;&amp;nbsp;&amp;nbsp;Intel(R) Xeon(R) Platinum 8480+&lt;/STRONG&gt; ), I see the following performance results: &lt;/P&gt;&lt;P&gt;export KMP_AFFINITY=granularity=fine,compact,1,0&lt;/P&gt;&lt;P&gt;size == 4000 v 4000, GEMM bf16 performance == &lt;STRONG&gt;53314.2 ,GFlops&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;$ echo $MKLROOT/&lt;/P&gt;&lt;P&gt;/opt/intel/oneapi/mkl/2024.0/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;You could see that ~54 TFlops is far beyond of f32 theoretical performance peak and it means that bf16 instructions has been used by default.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;--Gennady&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 13 Feb 2024 08:16:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1571819#M35816</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2024-02-13T08:16:16Z</dc:date>
    </item>
    <item>
      <title>Re: Re:FP16 GEMM using AVX512 on Sapphire Rapids</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1571821#M35817</link>
      <description>&lt;P&gt;forget to add the verbose mode outputs just as an example:&lt;/P&gt;
&lt;P&gt;...verbosing ....&lt;BR /&gt;&lt;STRONG&gt;MKL_VERBOSE oneMKL 2024.0 Product build 20231011 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) with support for INT8, BF16, FP16 (limited) instructions, and Intel(R) Advanced Matrix Extensions (Intel(R) AMX) with INT8 and BF16, Lnx 2.93GHz lp64 intel_thread&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 53.17ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.33ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.15ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.14ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.96ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.33ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.12ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.12ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;BR /&gt;MKL_VERBOSE GEMM_BF16BF16F32(N,N,4000,4000,4000,0x7ffca87fa7b8,0x1490820cd080,4000,0x149083f52080,4000,0x7ffca87fa7c0,0x14907e3c3080,4000) 2.10ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:112&lt;/P&gt;
&lt;P&gt;size == 4000, GEMM bf16 performance == 56674.9 ,GFlops&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Feb 2024 08:19:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FP16-GEMM-using-AVX512-on-Sapphire-Rapids/m-p/1571821#M35817</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2024-02-13T08:19:58Z</dc:date>
    </item>
  </channel>
</rss>

