Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29301 Discussions

Optimization runtime check and valgrind

David2
Beginner
782 Views
Hello Intel folks

I have run into a problem using valgrind to debug my code. Valgrind supports SSE3 instructions but I can not run code compiled and optimized (-O1 -O2 or -O3) using the intel compilers? (-O0 works)

I get the following error:
Fatal Error: This program was not built to run on the processor in your system.
The allowed processors are: Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support.

My understanding is that Valgrind uses CPUID to create a virtual processor which should exactly emulate the real processor?

Is the runtime check failing because the emulation is incorrect or because the run time check is not compatible with the emulation (even though the code could run otherwise)?

Can I turn off the run time check somehow and see what happens?

Thanks
David
0 Kudos
2 Replies
jimdempseyatthecove
Honored Contributor III
782 Views

David,

Compile the main (the module with PROGRAM) as not requiring SSE3, compile everything else with requires SSE3. The processor test is only performed on startup of the main based on main's options. If your main does some productive work, then rename it into a subroutine and make a seperate file as a main stub and call the former main then compile the stub without requirees SSE3.

Jim Dempsey

0 Kudos
Steven_L_Intel1
Employee
782 Views
David,

You must have also specified -xP somewhere, as otherwise there is no CPU check. If you have, try -xO instead.
0 Kudos
Reply