This article describes how to use Intel software development tools to improve the final article of software performance. The first two introduces the use of the Intel compiler to improve the compiled code execution performance and optimize the code performance bottleneck through Intel VTune. This article will introduce how to use highly optimized libraries to increase code development efficiency and performance. Since the functions provided by the function library are specifically optimized for the Intel processor, they can be used for direct calls. Developers are better than standing on the shoulders of the giant, and no longer need to optimize the processor in hard coding. province
Going a lot of time energy, thereby increasing development efficiency, making the product faster to market.
Intel Based on the different needs of developers, it provides three sets of highly optimized libraries, which are for signal processing and the original "Intel Integrated Performance of" Intel Integrated Performance "(Intel IPP) for signal processing and multimedia software. Original" Intel Graphics Performance (Intel) GPP) and "Intel Mathematical Nuclear Library" (Intel MKL) for mathematics, engineering, and scientific calculations. Let's start to optimize the functions and use of these function libraries.
Intel Integrated Performance Original, IPP This is a cross-platform signal and multimedia software library containing a low-level layer that will function from the underlying processor. In this way, the application can transparently use the latest enhancements of the Intel architecture, such as MMX (TM) technology, data flow order command multi-data expansion instruction set (SSE), the second generation data flow order command multi-data expansion instruction set ( SSE2), as well as the Anteng architecture and Intel Xscale microforming structure. "Intel IPP" provides a wide range of multimedia features: audio, video and speech codecs; image processing; signal processing; mathematical support routines, and computer vision. Many standard codecs can be constructed using Intel IPP, including: MP3 and AAC audio; H.263, MPEG-1, MPEG-2, MP3 and MPEG-4 videos; JPEG and JPEG2000 images; and G.723.1 G.729 speech.
"Intel IPP" contains a wide variety of functions for vector and image processing, color conversion, filtering, split screen, setting threshold, transformation, and arithmetic, statistics, geometric and morphological operations. For each function, "Intel IPP" supports multiple data types and layouts, while maintaining the minimization of data structures, it provides a rich option for users to choose when designing and optimizing applications, making it no need to write Assembly code.
The optimization of IPP is more immediate, and the latest tests on the platform based on the Pentium 4 processor show that the performance gain of the "Intel IPP" library exceeds the compiled C code.
Intel graphics performance original, GPP
The library provides a set of rich and powerful 3D graphics functions, and is designed to optimize the "Intel Personal Internet User Architecture" (Intel PCA) application processor with IntelXScale technology. Intel GPP includes a wide range of 3D graphics functions, including data type conversion, arithmetic, triangular, vector, matrix, and grating. The functions in the Intel GPP library are optimized for the Intel Xscale microforming, so that developers do not have to write the underlying assembly code to maximize the performance of the Intel processor, which is a convenient and powerful means. This "ready-made" best solution can help reduce development costs and accelerate the push market. Although Intel GPP libraries are not a comprehensive graphics engine, it provides a basic prefabricated block that can be used to create a three-dimensional engine designed for Intel Xscale micro-architectural structures. These originals include the basic functions of up to the engine components, which have great flexibility in the engine architecture and implementation.
In addition, Intel GPP also solves many of the common problems in the three-dimensional software rendering system, such as lack of support for integer division, lacks dedicated floating-point hardware, limited system memory, handheld and mobile device display area too small, and so on. Intel GPP is compatible with many popular embedded operating systems, such as Microsoft Pocket PC * 2002 running on Intel PXA250 processors. However, these originals are very low, pay attention to avoid dependence on the host operating system during design. Intel GPP provides good support for application transplants, and does not expense performance. Intel GPP can also optimize game applications for handheld and mobile devices. Intel mathematics kernel library, MKL This library consists of highly optimized functions, involving applications in mathematics, engineering, science and finance, etc. in the Intel platform. The functional area of this function library includes linear algebra, discrete Fourier transform (DFT), vector beyond function (Vector Mathematical Library / VML), and Vector Statistics Branch (VSL) function.
New features in the Intel mathematics kernel library:
U Today, on desktops, workstations and servers based on Intel processors, various applications and simulation works have risen, in order to meet their needs, Intel MKL will continue to improve performance, add more numerical functions, and continue to maintain Outstanding performance.
u Provide one-dimensional D f T routine (up to 7 days, the transformation length does not include 2 power, support the mixed base), further expand the FFT function of Intel MKL.
The U vector statistics library provides high-performance pseudo-random number generators that can be handmade, adjust, and vectorized. These random number generator subroutines provide basic continuous and discrete distributions.
Intel MKL performance optimization can be reflected in the following aspects:
DFT function optimization
This figure shows the performance of the two-dimensional DFT function in a series of matrices, and the performance of the two-dimensional DFT function is used in a million floating point operations per second. Intel MKL's built-in thread technology can utilize multiple processors. This figure suggests that the outstanding performance of these DFT function optimizations in Intel MKL, as well as performance enlargement effects when thread increases.
Linear algebra and DGEMM
The matrix multiplication is a cubic operation; when the matrix of multiplier is doubled, the amount of operation will reach 8 times. Double Precision Ordinary Matrix (DGEMM) is a problem in the trim linear algebra. In many applications that are very dependent on large equations, the performance of the description of the solution directly depends directly on DGEMM performance.
On multiprocessor systems, Intel MKL uses other available processors to accelerate performance and complete tasks. As the number of processors increases, performance is almost linearly enlarged.
Intel MKL optimization features can even make the desktop's power of the power, the various functional districts of Intel MKL (LAPACK, BLAS, DFTS, VML and VSL) can achieve excellent performance. Many functions in Intel MKL have been threaded, in symmetry
A multi-process (SMP) system can produce excellent performance. This will bring the benefits of parallel operations, without any additional work, allows applications to increase excellent performance enlargement effects with threads.
summary
The above three sets of correspondence libraries will start with both performance and compatibility, facilitating developers to improve program performance. With these function libraries, you don't have to specifically write code for specific processors, you can use the processor's advanced features. In addition, these application programming interfaces (APIs) can be used across many platforms, making multimedia application developers to easily implement cross-platform compatibility and help to reduce development costs. The above function libraries provide Windows and Linux versions.
You can get the free trial version of Intel Software Development Tools by the following address:
http://www.xlsoft.com/cn/products/intel/index.htm