<?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 Thank you Ying, I got it. in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169357#M28441</link>
    <description>&lt;P&gt;Thank you Ying, I got it.&lt;/P&gt;

&lt;P&gt;While last question: Can I use global conversion primitives? Thank you very much&lt;/P&gt;</description>
    <pubDate>Mon, 21 Aug 2017 03:58:03 GMT</pubDate>
    <dc:creator>xuesong_g_</dc:creator>
    <dc:date>2017-08-21T03:58:03Z</dc:date>
    <item>
      <title>Are DNN functions thread safe?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169351#M28435</link>
      <description>&lt;P&gt;It seems that dnnExecute_F32 can not be called in multi-thread, does it?&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 11:38:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169351#M28435</guid>
      <dc:creator>xuesong_g_</dc:creator>
      <dc:date>2017-08-18T11:38:36Z</dc:date>
    </item>
    <item>
      <title>dnnExecute_F32 is threaded by</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169352#M28436</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;dnnExecute_F32 is threaded by OpenMP and will use OpenMP runtime lib if you linked the application with libiomp5 lib&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 20 Aug 2017 03:34:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169352#M28436</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2017-08-20T03:34:34Z</dc:date>
    </item>
    <item>
      <title>Quote:Gennady F. (Intel)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169353#M28437</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Gennady F. (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;dnnExecute_F32 is threaded by OpenMP and will use OpenMP runtime lib if you linked the application with libiomp5 lib&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I use sequential mkl. I want to control thread outside. win32 thread or pthread. Does MKL support this way?&lt;/P&gt;</description>
      <pubDate>Sun, 20 Aug 2017 07:33:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169353#M28437</guid>
      <dc:creator>xuesong_g_</dc:creator>
      <dc:date>2017-08-20T07:33:11Z</dc:date>
    </item>
    <item>
      <title>Hi Xuesong,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169354#M28438</link>
      <description>&lt;P&gt;Hi Xuesong,&lt;/P&gt;

&lt;P&gt;If needed,&amp;nbsp; right, you can control thread outside by win32 thread or pthread etc. &amp;nbsp;MKL function include MKLDNN function support that way.&amp;nbsp; for example, MKL user guide discuss&amp;nbsp;: &lt;A href="https://software.intel.com/en-us/mkl-linux-developer-guide-avoiding-conflicts-in-the-execution-environment"&gt;https://software.intel.com/en-us/mkl-linux-developer-guide-avoiding-conflicts-in-the-execution-environment&lt;/A&gt;.&lt;/P&gt;

&lt;P&gt;And if you are build one NN topology, please refer to MKL NN sample under MKL install directory,&amp;nbsp; /mkl/example/*.tgz, unzip it and the folder dnnc&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 02:10:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169354#M28438</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2017-08-21T02:10:35Z</dc:date>
    </item>
    <item>
      <title>Hi Ying.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169355#M28439</link>
      <description>&lt;P&gt;Hi Ying.&lt;/P&gt;

&lt;P&gt;Can I create global DNN primitives, then use them in multiple diffrent threads? In my test case, I found this will lead to unstable output.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 03:36:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169355#M28439</guid>
      <dc:creator>xuesong_g_</dc:creator>
      <dc:date>2017-08-21T03:36:06Z</dc:date>
    </item>
    <item>
      <title>Hi Xuesong,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169356#M28440</link>
      <description>&lt;P&gt;Hi Xuesong,&lt;/P&gt;

&lt;P&gt;Right, you can't create Global DNN primitives, but use them in multiply different threads. You need to take care of the synchronize of the involve data and internal structure (like any global variable, you use&amp;nbsp;it in different&amp;nbsp;threads&amp;nbsp;, you need to add protect mechanism to use it) .&amp;nbsp; But you can create&amp;nbsp;private DDN primitives &amp;nbsp;for each threads, it is thread safe.&amp;nbsp; That is why&amp;nbsp;we suggest&amp;nbsp;to use MKL build the topology directly instead of manage the threads yourself.&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 03:43:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169356#M28440</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2017-08-21T03:43:31Z</dc:date>
    </item>
    <item>
      <title>Thank you Ying, I got it.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169357#M28441</link>
      <description>&lt;P&gt;Thank you Ying, I got it.&lt;/P&gt;

&lt;P&gt;While last question: Can I use global conversion primitives? Thank you very much&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 03:58:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169357#M28441</guid>
      <dc:creator>xuesong_g_</dc:creator>
      <dc:date>2017-08-21T03:58:03Z</dc:date>
    </item>
    <item>
      <title>Hi Xuesong,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169358#M28442</link>
      <description>&lt;P&gt;Hi Xuesong,&lt;/P&gt;

&lt;P&gt;Yes,&amp;nbsp;&amp;nbsp;the conversion primitives&amp;nbsp;may work as&amp;nbsp;global primitives, if no data conflict in different threads.&amp;nbsp;Not sure how do like design the&amp;nbsp;Muliti-thread NN.&amp;nbsp;&amp;nbsp; Here is one MKL NN Convolution code vs. general C code. &lt;A href="https://community.intel.com/legacyfs/online/drupal_files/managed/b9/e9/mkl_conv_avx2.c"&gt;https://software.intel.com/sites/default/files/managed/b9/e9/mkl_conv_avx2.c&lt;/A&gt;&amp;nbsp;for your reference.&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;BR /&gt;
	Ying&lt;/P&gt;</description>
      <pubDate>Tue, 22 Aug 2017 02:26:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Are-DNN-functions-thread-safe/m-p/1169358#M28442</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2017-08-22T02:26:39Z</dc:date>
    </item>
  </channel>
</rss>

