<?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 Non-Intel processor support in icx with fallback in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Non-Intel-processor-support-in-icx-with-fallback/m-p/1649325#M4238</link>
    <description>&lt;P&gt;Hello. We are compiling software for Windows to be used on both Intel and non-Intel processors. We would like to compile this with AVX2 support on both types of processors. However, we also need a fallback in case a processor does not support AVX2 instructions. Looking at the compiler options I don't see a combination that supports this scenario.&lt;/P&gt;&lt;P&gt;The &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/arch.html#GUID-4096E831-F7A4-4B3A-A74E-D104CC647C61" target="_blank"&gt;`/arch`&lt;/A&gt; flag is the one that provides "generic" support for instruction sets. However, this does not allow multiple architectures to be specified so there is no way to have a fallback. &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/ax-qax.html#GUID-2D881A91-C5D7-4DDD-84B1-FB9D0D597F4D" target="_blank"&gt;`/Qax`&lt;/A&gt; provides Intel-specific support and also uses a baseline provided by `/arch`. However, since `/Qax` is Intel-specific and will not work on non-Intel processors, the `/arch` flag must be used as the baseline but both AVX2 and the baseline cannot be specified for non-Intel processors. Similarly, &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/x-qx.html#GUID-09734487-1819-4C1E-B314-2497F2B64C45" target="_blank"&gt;`/Qx`&lt;/A&gt; only provides Intel-specific AVX2 optimisations and so has the same problem as `/Qax` and a baseline cannot be specified with this option.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hopefully I understand the flags and their details. Can you please verify that my understanding is correct? If so, I would appreciate any advice you have to tackle this situation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
    <pubDate>Fri, 13 Dec 2024 18:59:00 GMT</pubDate>
    <dc:creator>grantroch</dc:creator>
    <dc:date>2024-12-13T18:59:00Z</dc:date>
    <item>
      <title>Non-Intel processor support in icx with fallback</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Non-Intel-processor-support-in-icx-with-fallback/m-p/1649325#M4238</link>
      <description>&lt;P&gt;Hello. We are compiling software for Windows to be used on both Intel and non-Intel processors. We would like to compile this with AVX2 support on both types of processors. However, we also need a fallback in case a processor does not support AVX2 instructions. Looking at the compiler options I don't see a combination that supports this scenario.&lt;/P&gt;&lt;P&gt;The &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/arch.html#GUID-4096E831-F7A4-4B3A-A74E-D104CC647C61" target="_blank"&gt;`/arch`&lt;/A&gt; flag is the one that provides "generic" support for instruction sets. However, this does not allow multiple architectures to be specified so there is no way to have a fallback. &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/ax-qax.html#GUID-2D881A91-C5D7-4DDD-84B1-FB9D0D597F4D" target="_blank"&gt;`/Qax`&lt;/A&gt; provides Intel-specific support and also uses a baseline provided by `/arch`. However, since `/Qax` is Intel-specific and will not work on non-Intel processors, the `/arch` flag must be used as the baseline but both AVX2 and the baseline cannot be specified for non-Intel processors. Similarly, &lt;A href="https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2024-1/x-qx.html#GUID-09734487-1819-4C1E-B314-2497F2B64C45" target="_blank"&gt;`/Qx`&lt;/A&gt; only provides Intel-specific AVX2 optimisations and so has the same problem as `/Qax` and a baseline cannot be specified with this option.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hopefully I understand the flags and their details. Can you please verify that my understanding is correct? If so, I would appreciate any advice you have to tackle this situation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2024 18:59:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Non-Intel-processor-support-in-icx-with-fallback/m-p/1649325#M4238</guid>
      <dc:creator>grantroch</dc:creator>
      <dc:date>2024-12-13T18:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: Non-Intel processor support in icx with fallback</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Non-Intel-processor-support-in-icx-with-fallback/m-p/1655534#M4273</link>
      <description>&lt;P&gt;Your understanding is correct. But I don't have any advice to tackle this situation.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 00:26:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Non-Intel-processor-support-in-icx-with-fallback/m-p/1655534#M4273</guid>
      <dc:creator>Viet_H_Intel</dc:creator>
      <dc:date>2025-01-09T00:26:08Z</dc:date>
    </item>
  </channel>
</rss>

