<?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:Question on calling function in Kernel in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1187269#M524</link>
    <description>&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;Glad to know that the information provided was helpful. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;As I have already commented that USM Supports both explicit and Implicit data movement strategies. Implicit data movement with USM can be achieved with host and shared allocations. With these types of allocations, the programmer does not need to explicitly insert copy operations (memcpy) to move data between host and device. Instead, the programmer can simply access the pointers inside a kernel, and any required data movement is performed automatically without programmer intervention.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Please do refer to the below links for more information.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://techdecoded.intel.io/essentials/dpc-part-2-programming-best-practices/" target="_blank"&gt;https://techdecoded.intel.io/essentials/dpc-part-2-programming-best-practices/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/USM/USM.adoc" target="_blank"&gt;https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/USM/USM.adoc&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Let us know if the information provided was helpful. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;--Goutham&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Fri, 26 Jun 2020 11:43:25 GMT</pubDate>
    <dc:creator>GouthamK_Intel</dc:creator>
    <dc:date>2020-06-26T11:43:25Z</dc:date>
    <item>
      <title>Question on calling function in Kernel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186637#M510</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I found this forum post on calling functions in the kernel:&amp;nbsp;https://software.intel.com/en-us/forums/oneapi-data-parallel-c-compiler/topic/856531&lt;/P&gt;&lt;P&gt;How is the memcpy(d_A0 different from accessors created in the kernel scope? I am curious about it.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are they the same thing? Are they different in memory?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jun 2020 21:32:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186637#M510</guid>
      <dc:creator>RAror6</dc:creator>
      <dc:date>2020-06-19T21:32:06Z</dc:date>
    </item>
    <item>
      <title>Hi Rushiv,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186638#M511</link>
      <description>&lt;P&gt;Hi Rushiv,&lt;/P&gt;&lt;P&gt;Thanks for reaching out to us.!&lt;/P&gt;&lt;P&gt;There are broadly two ways of managing memories:&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Explicitly by the programmer.&lt;/LI&gt;&lt;LI&gt;Implicitly by the runtime.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;DPC++ supports both Explicit and Implicit data management strategies. As both methods have their own advantages and drawbacks, you may choose any of the methods depending on your requirements.&amp;nbsp;&lt;/P&gt;&lt;P&gt;To implement the above strategies DPC++ provides&amp;nbsp;abstractions: USM, Buffers, and Images.&lt;/P&gt;&lt;P&gt;USM supports both explicit and Implicit data movement strategies. As per the query which you have asked it is&amp;nbsp;USM Explicit strategy.&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Explicit date movement with USM can be done using malloc_device() and memcpy() operations. The data should be copied explicitly by the programmer between host and device memory before and after kernel execution using memcpy() operations.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;By using Buffers we can implement an Implicit data management strategy.&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Buffers are represented by data objects, the interaction of these memory objects&amp;nbsp;between the host and device is accomplished via an&amp;nbsp;accessor, which communicates the desired location of access, such as host or device, and the particular mode of access, such as read or write.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;You may refer to the below link for more information regarding the memory model for oneAPI.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://software.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-programming-model/memory-model.html"&gt;https://software.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-programming-model/memory-model.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Please let&amp;nbsp;us know if the information provided is helpful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Goutham&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2020 11:33:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186638#M511</guid>
      <dc:creator>GouthamK_Intel</dc:creator>
      <dc:date>2020-06-22T11:33:02Z</dc:date>
    </item>
    <item>
      <title>That is very helpful!</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186639#M512</link>
      <description>&lt;P&gt;That is extremely&amp;nbsp;helpful!&lt;BR /&gt;&lt;BR /&gt;Thank you so much!&lt;BR /&gt;&lt;BR /&gt;I was wondering, could you tell me what an implicit USM would look like? Thank you!&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2020 12:13:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1186639#M512</guid>
      <dc:creator>RAror6</dc:creator>
      <dc:date>2020-06-22T12:13:00Z</dc:date>
    </item>
    <item>
      <title>Re:Question on calling function in Kernel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1187269#M524</link>
      <description>&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;Glad to know that the information provided was helpful. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;As I have already commented that USM Supports both explicit and Implicit data movement strategies. Implicit data movement with USM can be achieved with host and shared allocations. With these types of allocations, the programmer does not need to explicitly insert copy operations (memcpy) to move data between host and device. Instead, the programmer can simply access the pointers inside a kernel, and any required data movement is performed automatically without programmer intervention.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Please do refer to the below links for more information.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://techdecoded.intel.io/essentials/dpc-part-2-programming-best-practices/" target="_blank"&gt;https://techdecoded.intel.io/essentials/dpc-part-2-programming-best-practices/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/USM/USM.adoc" target="_blank"&gt;https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/USM/USM.adoc&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Let us know if the information provided was helpful. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;--Goutham&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 26 Jun 2020 11:43:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1187269#M524</guid>
      <dc:creator>GouthamK_Intel</dc:creator>
      <dc:date>2020-06-26T11:43:25Z</dc:date>
    </item>
    <item>
      <title>Re:Question on calling function in Kernel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1188408#M528</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Could you please let us if the information provided helped you. &lt;/P&gt;&lt;P&gt;Let us know if we can close the thread. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Goutham &lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 30 Jun 2020 13:26:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1188408#M528</guid>
      <dc:creator>GouthamK_Intel</dc:creator>
      <dc:date>2020-06-30T13:26:19Z</dc:date>
    </item>
    <item>
      <title>Re:Question on calling function in Kernel</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1190625#M555</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;We have not heard back from you so we are closing this inquiry now. If you need further assistance, please post a new question.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Goutham&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 08 Jul 2020 11:03:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Question-on-calling-function-in-Kernel/m-p/1190625#M555</guid>
      <dc:creator>GouthamK_Intel</dc:creator>
      <dc:date>2020-07-08T11:03:14Z</dc:date>
    </item>
  </channel>
</rss>

