<?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: Ray packets performance in Intel® Embree Ray Tracing Kernels</title>
    <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227451#M871</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;yes you can call rtcIntersect from multiple threads as there's NO synchronization mechanism within rtcIntersect. If you have multiple CPU cores in your system and each thread is running on a separate core you should observe a linear speedup, e.g. with 4 cores you should see 4 times reduction in run-time.&lt;/P&gt;</description>
    <pubDate>Wed, 11 Nov 2020 14:11:21 GMT</pubDate>
    <dc:creator>BenthinC_Intel</dc:creator>
    <dc:date>2020-11-11T14:11:21Z</dc:date>
    <item>
      <title>Ray packets performance</title>
      <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227183#M867</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;I'm using Embree for solving some collision-related tasks within my project. The average vertex count for the meshes within my working scene is ~5K. So, I'm determining the distance between 2 meshes along some direction by just iteratively calling &lt;STRONG&gt;rtcIntersect1()&lt;/STRONG&gt; for rays segments with origin set to current vertex and the direction set to the mentioned above. All the rays are coherent as they use the direction.&lt;/P&gt;
&lt;P&gt;Can I benefit from using the ray packet versions of &lt;STRONG&gt;rtcIntersect&lt;/STRONG&gt; to get the total amount of queries N times less (N = 4,8,16) by just switching from the loop of single-ray queries to a N times shorter loop with packet queries? Or do I need some tricky ray packet setting with rays being set very close to each other within the single packet?&lt;/P&gt;
&lt;P&gt;Also the minor question: can I safely use single ray intersection query for the same scene from several threads (each thread is supposed to run its own set of intersection queries from different origins in the same scene)?&lt;/P&gt;
&lt;P&gt;Thank you in advance for answering.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 22:37:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227183#M867</guid>
      <dc:creator>SergeyA</dc:creator>
      <dc:date>2020-11-10T22:37:50Z</dc:date>
    </item>
    <item>
      <title>Re: Ray packets performance</title>
      <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227405#M869</link>
      <description>&lt;P&gt;From your description it seems the rays inside the packet could have enough coherence so that ray packet traversal (rtcIntersect4/8/16) would provide a benefit. The rays inside the packet do not have to share a common origin. Just give it a try and simply use a N times shorter loop. Also you can safely use rtcIntersect from multiple threads at the same time.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Nov 2020 11:15:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227405#M869</guid>
      <dc:creator>BenthinC_Intel</dc:creator>
      <dc:date>2020-11-11T11:15:18Z</dc:date>
    </item>
    <item>
      <title>Re: Ray packets performance</title>
      <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227442#M870</link>
      <description>&lt;P&gt;Hi BenthinC!&lt;/P&gt;
&lt;P&gt;Could you please clarify on calling rtcIntersect from multiple threads, please?&lt;/P&gt;
&lt;P&gt;Is there any data synchronization mechanism used within rtcIntersect (like, mutex)?&lt;/P&gt;
&lt;P&gt;Say, I have M (~2-3k) single ray tracing queries. What exact benefit (measured in times) is expected from splitting this amount to N threads (each will execute the M/N queries) for N =10?&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 11 Nov 2020 13:43:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227442#M870</guid>
      <dc:creator>SergeyA</dc:creator>
      <dc:date>2020-11-11T13:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: Ray packets performance</title>
      <link>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227451#M871</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;yes you can call rtcIntersect from multiple threads as there's NO synchronization mechanism within rtcIntersect. If you have multiple CPU cores in your system and each thread is running on a separate core you should observe a linear speedup, e.g. with 4 cores you should see 4 times reduction in run-time.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Nov 2020 14:11:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Embree-Ray-Tracing-Kernels/Ray-packets-performance/m-p/1227451#M871</guid>
      <dc:creator>BenthinC_Intel</dc:creator>
      <dc:date>2020-11-11T14:11:21Z</dc:date>
    </item>
  </channel>
</rss>

