Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
18 Views

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

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

 

Robert M. Münch, CEO, Saphirion AG
0 Kudos
5 Replies
Highlighted
Black Belt
18 Views

You would need to build with /arch:SSE4.1 set so as not to check cpu arch or require newer ISA.
0 Kudos
18 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.

Robert M. Münch, CEO, Saphirion AG
0 Kudos
Highlighted
Black Belt
18 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
Highlighted
18 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.

Robert M. Münch, CEO, Saphirion AG
0 Kudos
Highlighted
Moderator
18 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