13.07.2015 Views

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

GENERAL OPTIMIZATION GUIDELINES• Automatic compiler optimization reduces the need to write different code fordifferent processors.• Common compiler features that are supported across Windows, Linux <strong>and</strong> MacOS include:— General optimization settings— Cache-management features— Inter procedural optimization (IPO) methods— Profile-guided optimization (PGO) methods— Multithreading support— Floating-point arithmetic precision <strong>and</strong> consistency support— Compiler optimization <strong>and</strong> vectorization reports3.1.2 General Compiler RecommendationsGenerally speaking, a compiler that has been tuned for the target microarchitecturecan be expected to match or outperform h<strong>and</strong>-coding. However, if performance problemsare noted with the compiled code, some compilers (like Intel C++ <strong>and</strong> FortranCompilers) allow the coder to insert intrinsics or inline assembly in order to exertcontrol over what code is generated. If inline assembly is used, the user must verifythat the code generated is of good quality <strong>and</strong> yields good performance.Default compiler switches are targeted for common cases. An optimization may bemade to the compiler default if it is beneficial for most programs. If the root cause ofa performance problem is a poor choice on the part of the compiler, using differentswitches or compiling the targeted module with a different compiler may be thesolution.3.1.3 VTune Performance AnalyzerVTune uses performance monitoring hardware to collect statistics <strong>and</strong> coding informationof your application <strong>and</strong> its interaction with the microarchitecture. This allowssoftware engineers to measure performance characteristics of the workload for agiven microarchitecture. VTune supports Intel Core microarchitecture, Intel NetBurstmicroarchitecture, Intel Core Duo, Intel Core Solo, <strong>and</strong> Pentium M processor families.The VTune Performance Analyzer provides two kinds of feedback:• indication of a performance improvement gained by using a specific codingrecommendation or microarchitectural feature• information on whether a change in the program has improved or degradedperformance with respect to a particular metric3-2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!