<?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 DLL load failure when ipps.dll is the only reference in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1743082#M29211</link>
    <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;we upgraded recently to oneAPI 2025.3 / IPP 2022 and encounter now mysterious DLL load failures. It seems to be related to ippcore.dll not be loaded before any other IPP DLL. If ipps.dll is loaded before ippcore.dll the load of ippcore.dll fails. This is reproducible by making a small console app with the following code (tested on Windows 10):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;filesystem&amp;gt;


int main()
{
    std::filesystem::current_path("D:\\Develop\\Bin\\x64\\Debug");

    const HMODULE h = ::LoadLibraryA("ipps.dll");
    
    if (h == 0)
    {
       //126: ERROR_MOD_NOT_FOUND 
       std::cerr &amp;lt;&amp;lt; "Error " &amp;lt;&amp;lt; ::GetLastError() &amp;lt;&amp;lt; std::endl;
    }
    else
    {
       ::FreeLibrary(h);
    }

    return 0;
}&lt;/LI-CODE&gt;&lt;P&gt;Although above example is artificial&amp;nbsp;in real world applications this can easily emerge when only ipps functions are used. Workarounds are not easy: with&amp;nbsp;implicit loading and link to 'ippcore.lib' the linker removes the reference to ippcore.dll if there are no functions used. This can be hacked by artificially add a a dependency&amp;nbsp; (e.g. invoke&amp;nbsp;ippGetLibVersion somewhere) but the problems are not over then. I see now that sometimes the Windows loader reorders the DLL loads and ipps.dll might be loaded before ippcore.dll resulting in the original failure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help? The best solution is that ippcore.dll just loads independent of the order.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 03 Apr 2026 14:19:24 GMT</pubDate>
    <dc:creator>gast128</dc:creator>
    <dc:date>2026-04-03T14:19:24Z</dc:date>
    <item>
      <title>DLL load failure when ipps.dll is the only reference</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1743082#M29211</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;we upgraded recently to oneAPI 2025.3 / IPP 2022 and encounter now mysterious DLL load failures. It seems to be related to ippcore.dll not be loaded before any other IPP DLL. If ipps.dll is loaded before ippcore.dll the load of ippcore.dll fails. This is reproducible by making a small console app with the following code (tested on Windows 10):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;filesystem&amp;gt;


int main()
{
    std::filesystem::current_path("D:\\Develop\\Bin\\x64\\Debug");

    const HMODULE h = ::LoadLibraryA("ipps.dll");
    
    if (h == 0)
    {
       //126: ERROR_MOD_NOT_FOUND 
       std::cerr &amp;lt;&amp;lt; "Error " &amp;lt;&amp;lt; ::GetLastError() &amp;lt;&amp;lt; std::endl;
    }
    else
    {
       ::FreeLibrary(h);
    }

    return 0;
}&lt;/LI-CODE&gt;&lt;P&gt;Although above example is artificial&amp;nbsp;in real world applications this can easily emerge when only ipps functions are used. Workarounds are not easy: with&amp;nbsp;implicit loading and link to 'ippcore.lib' the linker removes the reference to ippcore.dll if there are no functions used. This can be hacked by artificially add a a dependency&amp;nbsp; (e.g. invoke&amp;nbsp;ippGetLibVersion somewhere) but the problems are not over then. I see now that sometimes the Windows loader reorders the DLL loads and ipps.dll might be loaded before ippcore.dll resulting in the original failure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help? The best solution is that ippcore.dll just loads independent of the order.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Apr 2026 14:19:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1743082#M29211</guid>
      <dc:creator>gast128</dc:creator>
      <dc:date>2026-04-03T14:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: DLL load failure when ipps.dll is the only reference</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1743681#M29213</link>
      <description>&lt;P&gt;...I can't edit my own post. There might be a reason why ippcore.dll is only 'loaded' (actually memory mapped in the process space) after ipps.dll. It seems that Windows parallel loads all indirect DLL's through its thread pool. The order is non deterministic resulting in spurious failures. Forcing a memory mapping load order is not possible besides the direct order in the PE executable.&amp;nbsp;It would be nice if Intel would fix this IPP issue; it already costs us a week.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The parallel loading can be&amp;nbsp;by&amp;nbsp;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\&amp;lt;YourApp.exe&amp;gt;\MaxLoaderThreads registry value on Windows but this is not a workable solution (i.e. costs performance and per PC / exe).&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Apr 2026 14:25:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1743681#M29213</guid>
      <dc:creator>gast128</dc:creator>
      <dc:date>2026-04-08T14:25:22Z</dc:date>
    </item>
    <item>
      <title>Re: DLL load failure when ipps.dll is the only reference</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1747083#M29220</link>
      <description>&lt;P&gt;Hello，&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;can you check the new 2026 IPP release? I can not reproduce this issue.&amp;nbsp; I also add DLL search directory like bellow:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;std::filesystem::current_path("D:\\Develop\\Bin\\x64\\Debug");&lt;/P&gt;
&lt;P&gt;SetDllDirectoryA("D:\\Develop\\Bin\\x64\\Debug"); // ADD THIS&lt;/P&gt;
&lt;P&gt;const HMODULE h = ::LoadLibraryA("ipps.dll");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;please check if this work for you.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;thanks,&lt;/P&gt;
&lt;P&gt;Chao&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2026 08:57:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1747083#M29220</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2026-05-07T08:57:08Z</dc:date>
    </item>
    <item>
      <title>Re: DLL load failure when ipps.dll is the only reference</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1748259#M29223</link>
      <description>&lt;P&gt;Hello Chao,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;busy with other things right now but when I have time again I can try IPP 2026. Be aware though that we use implicit linking so solution with setting DLL directories wouldn't solve our problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;wkr&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 10:53:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/DLL-load-failure-when-ipps-dll-is-the-only-reference/m-p/1748259#M29223</guid>
      <dc:creator>gast128</dc:creator>
      <dc:date>2026-05-18T10:53:19Z</dc:date>
    </item>
  </channel>
</rss>

