<?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 intel-llvm-sycl/dpcpp compiler linking error: soft-float / double-float modules in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/intel-llvm-sycl-dpcpp-compiler-linking-error-soft-float-double/m-p/1678910#M4385</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Not sure if this is the correct forum but, I've compiled the intel-llvm-sycl/dpcpp compiler from GitHub here specifically to use the compiler with an Intel GPU:&amp;nbsp;&lt;A href="https://github.com/intel/llvm" target="_blank"&gt;https://github.com/intel/llvm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Right now, I'd like to compile a simple "hello world" program that can print out an the Intel Arc A750 GPU that I've installed on the machine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've compiled this program successfully using the Adaptive C++ compiler from here:&amp;nbsp;&lt;A href="https://adaptivecpp.github.io/" target="_blank"&gt;https://adaptivecpp.github.io/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When using the Intel-LLVM-Sycl/dpcpp compiler with the following flags:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 -Xsycl-target-backend "-device intel_gpu_dg2_g12" hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;P&gt;The compilation process terminates with this linking error :&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/usr/bin/ld: /tmp/hello_dg12-wrapper-f79096.o: can't link soft-float modules with double-float modules&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Any assistance or help would be much appreciated! I get the impression there's a flag that's missing which tells the compiler to emulate 64 bit floating point (double precision) on the GPU architecture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also wanted to note that the `&lt;STRONG&gt;-Xsycl-targets=spir64_gen&lt;/STRONG&gt;` flag causes the compiler to fail and terminate with a "gen" not supported error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;v/r,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;</description>
    <pubDate>Sat, 29 Mar 2025 13:08:30 GMT</pubDate>
    <dc:creator>ct_clmsn</dc:creator>
    <dc:date>2025-03-29T13:08:30Z</dc:date>
    <item>
      <title>intel-llvm-sycl/dpcpp compiler linking error: soft-float / double-float modules</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/intel-llvm-sycl-dpcpp-compiler-linking-error-soft-float-double/m-p/1678910#M4385</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Not sure if this is the correct forum but, I've compiled the intel-llvm-sycl/dpcpp compiler from GitHub here specifically to use the compiler with an Intel GPU:&amp;nbsp;&lt;A href="https://github.com/intel/llvm" target="_blank"&gt;https://github.com/intel/llvm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Right now, I'd like to compile a simple "hello world" program that can print out an the Intel Arc A750 GPU that I've installed on the machine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've compiled this program successfully using the Adaptive C++ compiler from here:&amp;nbsp;&lt;A href="https://adaptivecpp.github.io/" target="_blank"&gt;https://adaptivecpp.github.io/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When using the Intel-LLVM-Sycl/dpcpp compiler with the following flags:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 -Xsycl-target-backend "-device intel_gpu_dg2_g12" hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;P&gt;The compilation process terminates with this linking error :&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/usr/bin/ld: /tmp/hello_dg12-wrapper-f79096.o: can't link soft-float modules with double-float modules&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Any assistance or help would be much appreciated! I get the impression there's a flag that's missing which tells the compiler to emulate 64 bit floating point (double precision) on the GPU architecture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also wanted to note that the `&lt;STRONG&gt;-Xsycl-targets=spir64_gen&lt;/STRONG&gt;` flag causes the compiler to fail and terminate with a "gen" not supported error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;v/r,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;</description>
      <pubDate>Sat, 29 Mar 2025 13:08:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/intel-llvm-sycl-dpcpp-compiler-linking-error-soft-float-double/m-p/1678910#M4385</guid>
      <dc:creator>ct_clmsn</dc:creator>
      <dc:date>2025-03-29T13:08:30Z</dc:date>
    </item>
    <item>
      <title>Re: intel-llvm-sycl/dpcpp compiler linking error: soft-float / double-float modules</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/intel-llvm-sycl-dpcpp-compiler-linking-error-soft-float-double/m-p/1678951#M4386</link>
      <description>&lt;P&gt;I've tried the advice outlined in this thread &lt;A href="https://community.intel.com/t5/Intel-Fortran-Compiler/Double-precison-on-ARC-GPU/td-p/1450217" target="_blank" rel="noopener"&gt;https://community.intel.com/t5/Intel-Fortran-Compiler/Double-precison-on-ARC-GPU/td-p/1450217&amp;nbsp;&lt;/A&gt;with the understanding that those environment flags are for the fortran compiler.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The following compilation command:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;IGC_EnableDPEmulation=1 SYCL_DEVICE_WHITE_LIST="" OverrideDefaultFP64Settings=1 clang++ -DKOKKOS_DEPENDENCE -DONEDPL_USE_DPCPP_BACKEND=1 -DONEDPL_USE_OPENMP_BACKEND=0 -DONEDPL_USE_TBB_BACKEND=0 -DPSTL_USE_PARALLEL_POLICIES=0 -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 -O3 -DNDEBUG -std=gnu++20 -fsycl -fsycl-unnamed-lambda -fsycl-targets=spir64 hellosycl.cpp -o hello_dg12&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;yields&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/usr/bin/ld: /tmp/hello_dg12-wrapper-e218bb.o: can't link soft-float modules with double-float modules
/usr/bin/ld: failed to merge target specific data of file /tmp/hello_dg12-wrapper-e218bb.o&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;are there comparable environment variables for the Intel sycl compiler?&lt;/P&gt;</description>
      <pubDate>Sat, 29 Mar 2025 18:26:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/intel-llvm-sycl-dpcpp-compiler-linking-error-soft-float-double/m-p/1678951#M4386</guid>
      <dc:creator>ct_clmsn</dc:creator>
      <dc:date>2025-03-29T18:26:59Z</dc:date>
    </item>
  </channel>
</rss>

