Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

C++ 18 / DLL / With optimization doesn't work on all systems

Robert_M__Münch
Beginner
423 Views

Hi, we compile (C++ 18) a DLL that contains a lot of HPC code with a bunch of otpimizations. The problem is that it doesn't work on all systems.

It works on an Xeon X5482 but not on a Core I7-2720QM system and not on a Xeon E5-2696V3 system. All should support at least SSE4.1, which we use, so that shouldn't make a difference.  Any idea about the cause? Or how to track this down?

Viele Grüsse. Robert

 

0 Kudos
5 Replies
TimP
Honored Contributor III
423 Views
You would need to build with /arch:SSE4.1 set so as not to check cpu arch or require newer ISA.
0 Kudos
Robert_M__Münch
Beginner
423 Views

@Tim: I'm building with  /QxSSE4.1 which I assume is the same. Or is there anything else to consider? Because the app works on an Intel Core i7 (4770HQ, 4870HQ, 4980HQ) ("Haswell") as well.

Viele Grüsse.

0 Kudos
TimP
Honored Contributor III
423 Views
You haven't been specific about your failure. If QxSSE4.1 is failing architecture check on an Intel cpu it seems a reportable problem but then the /arch: option should work.
0 Kudos
Robert_M__Münch
Beginner
423 Views

I'm still not sure I fully understand. Is /arch:SSE4.1 something different than /QxSSE4.1? Or do you mean using a different architecture than SSE.41? But all processors should support it or not?

[after some RTFM I found]:

On Windows systems, options /Qx and /arch are mutually exclusive.

/Qx produces binaries that display a fatal run-time error if they are executed on unsupported processors, including all non-Intel processors (!!). The code does a CPU check and fails if it's not an Intel CPU. With /Od (Windows*), no CPU check is performed but may result in undefined behavior. 

/arch produces binaries that should run on processors not made by Intel that implement the same capabilities as the corresponding Intel processors.

0 Kudos
JenniferJ
Moderator
423 Views

with /QxSSE4.1: it should work on all Intel processors supporting SSE4.1.

could you file a bug report at Intel Online Service center?

https://software.intel.com/en-us/articles/how-to-create-a-support-request-at-online-service-center

Jennifer

0 Kudos
Reply