Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Using Intel Compiler in GCC Environment
ICC 12.1 for Linux
1/9/2012 1
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Agenda
1. The Compiler
2. Compiler Options
3. Standards
4. Compatibility
5. Compiler Tools to help Visibility
Intel Confidential
2
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Question:
What do you expect in a good compiler?
Intel Confidential
3
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
In a good compiler …
Intel Confidential
4
Fast performing code
Compatibility
Reliable code
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
What?
Intel Confidential
5
/Qms
“allow compilation of certain dubioussources”
n=0 disable Microsoft compatibility bugsn=1 enable most Microsoft
compatibilities (DEFAULT)
n=2 full Microsoft compatibility
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
PhasePhasePhasePhase ProductivityProductivityProductivityProductivity ToolToolToolTool FeatureFeatureFeatureFeature BenefitBenefitBenefitBenefit
Advanced Advanced Advanced Advanced Build & Build & Build & Build & DebugDebugDebugDebug
Intel® Composer XEIntel® Composer XEIntel® Composer XEIntel® Composer XE
C/C++ and Fortran compilers, performance libraries, and parallel models
Driving application performance and scalability benefits of multicore and forward scale to manycore. Additionally providing code robustness and security.
Advanced Advanced Advanced Advanced VerifyVerifyVerifyVerify Intel® Intel® Intel® Intel® Inspector XEInspector XEInspector XEInspector XE
Memory & threading error checking tool for higher code reliability & quality
Increases productivity and lowers cost, by catching memory and threading defects early
Advanced Advanced Advanced Advanced TuneTuneTuneTune
Intel® Intel® Intel® Intel® VTuneVTuneVTuneVTuneTMTMTMTM
Amplifier XEAmplifier XEAmplifier XEAmplifier XE
Performance Profiler to optimize performance and scalability
Removes guesswork, saves time, makes it easier to find performance and scalability bottlenecks Combines ease of use with deeper insights.
Intel® Parallel Studio XE 2011Advanced Performance
61/9/2012
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
7
Intel® C++ and Fortran Composer XE
1/9/2012 7
Intel® C++ Composer XE 2011 for Linux
Intel® C++ Compiler (ICC) 12.0
Intel® Debugger with parallel debugging support (IDB) 12.0
Intel® Math Kernel Library ( Intel® MKL ) 10.3
Intel® Integrated Performance Primitives (Intel® IPP) 7.0
Intel® Threading Building Blocks (Intel® TBB) 3.0
Intel® Fortran Composer XE 2011 for Linux
Intel® Fortran Compiler ( IFORT) 12.0
Intel® Debugger with parallel debugging support (IDB) 12.0
Intel® Math Kernel Library ( Intel® MKL ) 10.3
Intel® Composer XE for Linux == Intel® C++ Composer XE for Linux & Intel® Fortran Composer XE for Linux
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 8
Intel® Compiler Architecture
Profiler
C++
Front End
Interprocedural analysis and optimizations: inlining,
constant prop, whole program detect, mod/ref, points-to
Loop optimizations: data deps, prefetch, vectorizer,
unroll/interchange/fusion/dist, auto-parallel/OpenMP
Global scalar optimizations: partial redundancy elim,
dead store elim, strength reduction, dead code elim
Code generation: vectorization, software pipelining,
global scheduling, register allocation, code generation
FORTRAN 2000
Front End
Disambiguation:
types, array,
pointer, structure,
directives
1/9/2012
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
2. Compiler Options
HLO
IPO
PGO
Intel Confidential
9
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Common Optimization Switches
10
Windows* Linux*
Disable optimization /Od -O0
Optimize for speed (no code size increase) /O1 -O1
Optimize for speed (default) /O2 -O2
High-level optimizer, including prefetch, unroll
/O3 -O3
Create symbols for debugging /Zi -g
Inter-procedural optimization /Qipo -ipo
Profile guided optimization (muli-step build) /Qprof-gen
/Qprof-use
-prof-gen
-prof-use
Optimize for speed across the entire program /fast(same as: /O3 /Qipo /Qprec-div- /QxHost)
-fast (same as: -ipo –O3 -no-prec-div -static -xHost)
OpenMP 3.0 support /Qopenmp -openmp
Automatic parallelization /Qparallel -parallel
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
High-Level Optimizer (HLO)
• Compiler switches: /O2, /O3 (Windows*), -O2, -O3 (Linux*)
• Loop level optimizations
– loop unrolling, cache blocking, pre-fetching, …
• More aggressive dependency analysis
– Determines whether or not it‘s safe to reorder or parallelizeinstructions
• Scalar replacement
– Goal is to reduce memory references with register references
11
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 12
Interprocedural OptimizationsExtends optimizations across file boundaries
Compile & Optimize
Compile & Optimize
Compile & Optimize
Compile & Optimize
file1.c
file2.c
file3.c
file4.c
Without IPO
Compile & Optimize
file1.c
file4.c file2.c
file3.c
With IPO
/Qip, -ip Only between modules of one source file
/Qipo, -ipo Modules of multiple files/whole application
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 13
Interprocedural Optimizations (IPO) Usage: Two-Step Process
Linking
Linux* icc -ipo main.o func1.o
func2.o
Windows* icl /Qipo main.o func1.o
func2.obj
Pass 1
Pass 2
Intermediate language
(mock) object
executable
Compiling
Linux* icc -c -ipo main.c func1.c
func2.c
Windows* icl -c /Qipo main.c func1.c
func2.c
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Profile-Guided Optimizations (PGO)
• Static analysis leaves many questions open for the optimizer like:– How often is x > y– What is the size of count– Which code is touched how often
• Use execution-time feedback to guide (final) optimization
• Enhancements with PGO:– More accurate branch prediction– Basic block movement to improve instruction
cache behavior– Better decision of functions to inline (help IPO)– Can optimize function ordering– Switch-statement optimization– Better vectorization decisions
14
if (x > y) do_this();
elsedo that();
for(i=0; i<count; ++I
do_work();
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
PGO Usage: Three Step Process
15
Compile + link to add instrumentationicc -prof_gen prog.c
Execute instrumented programprog.exe (on a typical dataset)
Compile + link using feedbackicc -prof_use prog.c
Dynamic profile: 12345678.dyn
Instrumented executable: foo.exe
Merged .dyn files: pgopti.dpi
Step 1
Step 2
Step 3
Optimized executable:foo.exe
profmerge
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
16
Simple PGO Example: Code Re-Order
for (i=0; i < NUM_BLOCKS; i++)
{
switch (check3(i))
{
case 3: /* 25% */
x[i] = 3; break;
case 10: /* 75% */
x[i] = i+10; break;
default: /* 0% */
x[i] = 99; break
}
}
“Case 10” is moved to the beginning – PGO can eliminate most tests&jumps for the common case –
less branch mispredicts
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
17
What you should know about PGO
• Instrumentation run can be up to twice as long– In-lining disabled, trace calls overhead
• Sometimes trace-files cannot be found– Looking at right directory ?
– Clean exit() call is necessary to dump info – Debugger can help / break in PGO trace start/end calls
• Benefit depends on control flow structure:
Significant Benefit
Little Benefit
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
1/9/2012
18
AutoAutoAutoAuto----Vectorization (IAVectorization (IAVectorization (IAVectorization (IA----32 and Intel32 and Intel32 and Intel32 and Intel® 64): 64): 64): 64): Optimizing Loops with SSE/SSE2/SSE3/SSSE3/SSE4Optimizing Loops with SSE/SSE2/SSE3/SSSE3/SSE4Optimizing Loops with SSE/SSE2/SSE3/SSSE3/SSE4Optimizing Loops with SSE/SSE2/SSE3/SSSE3/SSE4
Your Task: convert this…Your Task: convert this…Your Task: convert this…Your Task: convert this…$ cat w.c
� void work( float* a, float *b, float *c, int MAX) {
� for (int I=0;I<=MAX;I++)
� c[I]=a[I]+b[I]; }
128-bit Registers128-bit Registers
A[0]
B[0]
C[0]
+ + + +
A[1]
B[1]
C[1]
not used not used not used
not used not used not used
not used not used not used
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
1/9/2012
19
�
void work( float* a, float *b, float *c, int MAX) {
� for (int I=0;I<=MAX;I++)
� c[I]=a[I]+b[I]; }
� $ icc w.c -c -xT
� w.c(2) : (col. 3) remark: LOOP WAS VECTORIZED.
AutoAutoAutoAuto----Vectorization (IAVectorization (IAVectorization (IAVectorization (IA----32 and Intel® 64)32 and Intel® 64)32 and Intel® 64)32 and Intel® 64)
128-bit Registers128-bit Registers
A[3] A[2]
B[3] B[2]
C[3] C[2]
+ +
A[1] A[0]
B[1] B[0]
C[1] C[0]
+ +
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
1/9/2012
20
Vectorization Report
– “Existence of vector dependence”
– “Non-unit stride used”
– “Mixed Data Types”
– “Condition too Complex”
– “Condition may protect exception”
– “Low trip count”
– “Subscript too complex”
– ‘Unsupported Loop Structure”
– “Contains unvectorizable statement at line XX”
– “Not Inner Loop”
– "vectorization possible but seems inefficient"
– “Operator unsuited for vectorization”
or other countries.
“Loop was not vectorized” because:
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
3. Standards
Intel Confidential
21
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Compatibility to Standards
Intel® C++ Compiler provides the following language conformances- ANSI/ISO standard for C language compilation
(ISO/IEC9899:1990)
- C99 support only misses ‚long double‘
- ANSI/ISO standard (ISO/IEC 14882:1998) for the C++ language
- AC99
- Many features of proposed C++0x standard
The Fortran Compiler provides the following language conformances- Fortran IV
- Fortran 77 language standard
- Fortran 90 language standard
- Fortran 95 language standard
- Fortran 2003 support almost complete
- Many features of Fortran 2008
22
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
C99 Standard Support
The following C99 features are supported in this version of the Intel® C++ Compiler
• Restricted pointers (restrict keyword).• Variable-length Arrays• Flexible array members• Complex number support (_Complex keyword)• Hexadecimal floating-point constants• Compound literals• Designated initializers• Mixed declarations and code• Macros with a variable number of arguments• Inline functions (inline keyword)• Boolean type (_Bool keyword)
Limitations:• long double (128-bit representations) is not supported
23
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
C++0x Support
New C++0x features
enabled by switch
/Qstd=c++0x (Windows), -std=c++0x (Linux)
• RVALUE references• Variadic templates • Extern templates • Hexadecimal Floating Constants• Atomic Types• Right angle brackets• Extended friend declarations• Mixed string literal concatenations • Support for long long• Static assertions• Universal character name literals• Strongly-typed enums• Lambda functions• …
24
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Fortran 2003/2008 Support
Fortran 2003 implementation almost complete– Added in Composer XE:
– Complete type-bound procedures (GENERIC, OPERATOR,..)
– FINAL procedures
– Bounds remapping on pointer assignments
– Remaining features of F2003 to be done in a later release: – User-defined derived type I/O
– Parameterized derived types
Fortran 2008 features– Coarrays
– DO CONCURRENT
– CONTIGUOUS
– I/O enhancements
– New constants in ISO_FORTRAN_ENV
– New intrinsic functions
– Increase maximum rank from 7 to 31– F2008 requires only 15
25
More Fortran details in a separate training module
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
4. Linux Compatibility
(a) Compatibilty to Linux GCC Compiler
(b) Libc \ Kernel Building
Intel Confidential
26
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
4. Linux Compatibility
(a) Compatibilty to Linux GCC Compiler
(b) Libc \ Kernel Building
Intel Confidential
27
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Compatibility to Linux GNU Compilers
Libraries & “Bin-Utils “• Intel compilers use linker and all other ‘bin-utils’
from Linux – no special version from Intel • Intel compilers use standard library “glibc” as
available on compilation system– Some dependencies to version – see release notes
• For C++, Intel compiler use GNU libstdc++
Compatibility of Fortran compilers • Intel Fortran Compiler for Linux is not binary
compatible with GNU g77 or GNU gfortrancompiler– Many differences too for accepted Fortran
language/standard conformance
28
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Compatibility to Linux GNU Compilers
Compatibility between compilers a topic of three levels:
• Compatibility of object code including name mangling
– Since GCC release 3.2, code compiled by ICC and GCC can be mixed without exceptions
• Compiler switches– Main switches of GCC and ICC are identical; both have options
however not available in the other
• Source code – features, syntax and semantic
– for the relevant parts, full compatibility of ICC and GCC – in particular standard conformance ( C and C++ )
– Switch –gcc-version=<n> can enforce specific compatibility to a GCC version <n>
– Samples for differences of ICC/GCC: – Supported C++0x features
– ICC does not support “Nested functions in C” see next slide– White paper on software.intel.com lists all differences
29
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Nested Functions Support
• Simple example of a nested function with an uplevelreference:
void foo(int i) {
void bar() {
i = 5;
}
}
• Glibc sources use this feature in about 40 files
• Feature added to icc with support for handling:
– Inline and always_inline attributes for nested functions
– References to parameters of enclosing functions and other uplevel references
– Duplicate nested function names
– Internal linkage properly for nested functions
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
ICC Compatibility Options
Intel Confidential
31
-gcc-name=<name>name and location of gcc if not where expected
-gxx-name=<name>name and location of g++ if not where expected
-gcc-version=<version>specify the <version> of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissibleExample: -gcc-version=410 -> gcc 4.1.x compatibility
-fabi-version=<val>directs the compiler to select a specific ABI implementation0 - most recent ABI implementation1 - g++ 3.2 compatible ABI implementation2 - most conformant ABI implementation
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Installation - Linux Setup
• Command line-driven installer/uninstaller
– Extract file to temp dir and run installer, e.g.:$ cd
$ tar -xzvf l_ccompxe_2011.2.048.tgz
$ cd l_ccompxe_2011.2.048
$ ./install //choose root , sudo root or user installation
.....
$ <installdir> bin/uninstall.sh //root or user uninstall, for example:
$ sudo /opt/intel/composerxe-2011.2.048/bin/uninstall.sh
32
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Directory Structure - Linux
• Based on Linux standard guidelines • bin contains compiler source scripts iccvars.(c)sh/ifortvars.(c)sh and symbolic
links to executables that can be invoked by user• The lib, include, ipp, mkl, and tbb directories are symbolic links to directories
with the same name in composerxe and contain the performance library headers and libraries
• man contains man pages for executable commands. It will be a symbolic link to the man structure under composerxe.
• composerxe is a symbolic link pointing to the compilerpro-12.0 directory.• composerxe-2011 is a physical directory containing links to header files and
libraries that are part of the latest Composer XE product configuration.• composerxe-2011.<n>.<bld>, for example composerxe-2011.2.048 is the
directory containing the files from a Composer release. <n> is the update number (starting at 0 for RTM) and <bld> is the build number.
• If /opt is a network drive, symbolic links are created if possible. They may or may not be visible on systems on which the product was not installed.
33
/opt/intel
includebin lib man composerxe-2011
tbbmklipp composerxe-
2011.<n>.<bld>
composerxe licenses
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
4. Linux Compatibility
(a) Compatibilty to Linux GCC Compiler
(b) Libc \ Kernel Building
Intel Confidential
34
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Overview of GNU/Linux Build Effort
• Linux kernel build using icc
•Glibc build using icc
•Libgcc and libstdc++ builds using icc
• Many other libraries were built with icc without
any issues
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
GLIBC \ Kernel Project – Problems Tackled
• Gcc options not supported by icc
• Nested functions support
• Unwinding support differences between gcc and icc
• Exception handling differences between gcc and icc
• Support for variadic templates
• Driver support for warnings, options, message strings
• Thread local storage issue
• Asm label declarations
• Hidden/Static/Weak symbols handling differences
Most issues related to gcc-compatibility features
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Summary and Future Work
• Significant improvements made in gcc-compatibility features as part of this effort
• Lot more work remains to be done
– Changing particular versions brings in new issues
– Build latest version of libstdc++
• Aim to build a full GNU/Linux distribution using icc
– Intel64 (for performance)
– Atom/Meego
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
5. Compiler Tools to help Visibility
Intel Confidential
38
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Loop ProfilerIdentify Time Consuming Loops/Functions
• Compiler switch: /Qprofile-functions, -profile-functions
– Insert instrumentation calls on function entry and exit points to collect the cycles spent within the function.
• Compiler switch: /Qprofile-loops=<inner|outer|all>,
-profile-loops= <inner|outer|all>
– Insert instrumentation calls for function entry and exit points as well as the instrumentation before and after instrument able loops of the type listed as the option’s argument.
• Loop Profiler switches trigger generation of text (.dump) and XML (.xml) output files– Invocation of XML on command line:
java -jar loopprofviewer.jar <xml datafile>
39
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Loop Profiler Text Dump (.dump file)
40
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Loop Profiler Data Viewer GUI (copy from sl. 46)
41
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
42
Intel® Code Coverage Tool
Example of code coverage summary for a project. The workload applied in this test exercised 34 of 143 blocks, representing 5 of 19 functions in 2 of 3 modules. In the file, SAMPLE.C, 4
of 5 functions were exercised
Clicking on SAMPLE.C produces a listing that highlights the code
that was exercised. In this example, the pink-highlighted code was never exercised, the
yellow was run but not exercised by any of the tests set up by the
developer and the beige was partially covered.
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Optimization Notice
43
Optimization Notice
Intel compilers, associated libraries and associated development tools may include or utilize options that optimize for instruction sets that are available in both Intel and non-Intel microprocessors (for example SIMD instruction sets), but do not optimize equally for non-Intel microprocessors. In addition, certain compiler options for Intel compilers, including some that are not specific to Intel micro-architecture, are reserved for Intel microprocessors. For a detailed description of Intel compiler options, including the instruction sets and specific microprocessors they implicate, please refer to the “Intel Compiler User and Reference Guides” under “Compiler Options." Many library routines that are part of Intel compiler products are more highly optimized for Intel microprocessors than for other microprocessors. While the compilers and libraries in Intel compiler products offer optimizations for both Intel and Intel-compatible microprocessors, depending on the options you select, your code and other factors, you likely will get extra performance on Intel microprocessors.Intel compilers, associated libraries and associated development tools may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel Streaming SIMD Extensions 2 (Intel SSE2), Intel Streaming SIMD Extensions 3 (Intel SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel SSSE3) instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors.While Intel believes our compilers and libraries are excellent choices to assist in obtaining the best performance on Intel and non-Intel microprocessors, Intel recommends that you evaluate other compilers and libraries to determine which best meet your requirements. We hope to win your business by striving to offer the best performance of any compiler or library; please let us know if you find we do not.
Notice revision #20110228
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Legal Disclaimer
44
INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, reference www.intel.com/software/products.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom, Centrino Atom Inside, Centrino Inside, Centrino logo, Cilk, Core Inside, FlashFile, i960, InstantIP, Intel, the Intel logo, Intel386, Intel486, IntelDX2, IntelDX4, IntelSX2, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, Viiv Inside, vPro Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.*Other names and brands may be claimed as the property of others.
Copyright © 2011. Intel Corporation.
http://intel.com/software/products
Intel Confidential
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.