Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

enabling s/w prefetching

ramacn
Beginner
436 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
436 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
436 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