Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

enabling s/w prefetching

ramacn
Beginner
879 Views

Hi all,
I was trying to enable software prefetching on Opteron by compiling an application using Intel compiler. But I am facing some problem.
I use the below compilation command.
-> icc -openmp -O3 -xsse4.2 -opt-prefetch=4 is.c
But when I run the program I get the below error.
"Fatal Error: This program was not built to run on the processor in your system.
The allowed processors are: Intel processors with SSE4.2 and POPCNT instructions support."
The CPU model is:
model name : Quad-Core AMD Opteron Processor 2354
Does anybody know what is the correct compiler option for icc to enable s/w prefetching? Please let me know.
Thank you
Regards,
Ram

0 Kudos
2 Replies
TimP
Honored Contributor III
879 Views
If you want sse4.2 code and also an Opteron code path, you will need something like -axsse4.2 -msse3 . Prefetch option doesn't over-ride your architecture option.
0 Kudos
ramacn
Beginner
879 Views
Hi Tim,
I tried this option, but I don't think the prefetch instruction is being generated.
I executed below command with the option you mentioned along with "-S" option to see the assembly file.
--> icc -c -openmp -O3 -axsse4.2 -msse3 -opt-prefetch=4 -S is.c
But the generated assembly file is.s doesn't seem to have any prefetch instruction inserted.
Between, I happened to read some where that '-xsse4.2' option is must to generate prefetch instruction, hence I was using it before.
Let me know what you think about this approach.
Regards,
Ram
0 Kudos
Reply