The SPMD programming model that ispc makes it easy to harness the computational power available in SIMD vector units on modern CPUs, while its basis in C makes it easy for programmers to adopt and use productively. This page summarizes the performance of ispc with the workloads in the examples/ directory of the ispc distribution.
These results were measured on a 4-core Apple iMac with a 4-core 3.4GHz Intel® Core-i7 processor using the Intel® AVX instruction set. The basis for comparison is a reference C++ implementation compiled with gcc 4.2.1, the version distributed with OS X 10.7.2. (The reference implementation is also included in the examples/ directory.)
Workload | ispc, 1 core | ispc, 4 cores |
AOBench (512 x 512 resolution) | 6.19x | 28.06x |
Binomial Options (128k options) | 7.94x | 33.43x |
Black-Scholes Options (128k options) | 8.45x | 32.48x |
Deferred Shading (1280p) | 5.02x | 23.06x |
Mandelbrot Set | 6.21x | 20.28x |
Perlin Noise Function | 5.37x | n/a |
Ray Tracer (Sponza dataset) | 4.31x | 20.29x |
3D Stencil | 4.05x | 15.53x |
Volume Rendering | 3.60x | 17.53x |
The following table shows speedups for a number of the examples on a 2.40GHz, 40-core Intel® Xeon E7-8870 system with the Intel® SSE4 instruction set, running Microsoft Windows Server 2008 Enterprise. Here, the serial C/C++ baseline code was compiled with MSVC 2010.
Workload | ispc, 40 cores |
AOBench (2048 x 2048 resolution) | 182.36x |
Binomial Options (2m options) | 63.85x |
Black-Scholes Options (2m options) | 83.97x |
Ray Tracer (Sponza dataset) | 195.67x |
Volume Rendering | 243.18x |
Notices & Disclaimers
Performance varies by use, configuration and other factors. Learn more at www.intel.com/PerformanceIndex.