1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Apple, Google Agree On More SLP Vectorization

Compiler

Published on 28 July 2013 10:53 AM EDT
Written by Michael Larabel in Compiler
5 Comments

After making more widespread use of the Loop Vectorizer, developers at Apple in Google are at least agreeing that LLVM's SLP Vectorizer should be more widely-used as well.

The LLVM SLP Vectorizer was covered earlier this year on Phoronix (and benchmarked) with its premiere in LLVM 3.3. The SLP Vectorizer is about "Superworld-Level Parallelism" and works towards vectorizing straight-line code over LLVM's already present and proven Loop Vectorizer. The SLP Vectorizer can vectorize memory access, arithmetic operations, comparison operations, and other select operations.

For now in LLVM (3.3 and SVN), the SLP Vectorizer isn't the default but must be enabled via the -fslp-vectorize and -fslp-vectorize-aggressive compiler switches for LLVM/Clang. However, LLVM/Clang developers have been discussing enabling this option for at least the -O3 optimization level.

Earlier this month I wrote initially of the discussion about enabling the LLVM SLP Vectorizer. Apple's Nadav Rotem on Sunday morning reignited the discussion with a new mailing list post to highlight their latest test data.

Nadav Rotem wrote, "As you can see [from the new compiler benchmark results], there is a small number of compile time regressions, a single major runtime *regression, and many performance gains. There is a tiny increase in code size: 30k for the whole test-suite. Based on the numbers below I would like to enable the SLP-vectorizer by default for -O3."

Google's Chandler Carruth followed up with, "I also have some benchmark data. It confirms much of what you posted -- binary size increase is essentially 0, performance increases across the board. It looks really good to me. However, there was one crash that I'd like to check if it still fires. Will update later today (feel free to ping me if you don't hear anything.). That said, why -O3? I think we should just enable this across the board, as it doesn't seem to cause any size regression under any mode, and the compile time hit is really low."

So it seems many are in agreement with enabling the SLP Vectorizer by default for the -O3 optimization level but it's possible that the straight-line code vectorizer could also be enabled for other optimization levels too if this Google compiler engineer gets his way. This change is likely for LLVM/Clang 3.4, which will likely be released around the end of the calendar year.

Coming up soon will be new LLVM 3.4 SVN benchmarks on Phoronix while for now you can see our early benchmark results that are quite positive towards improved performance in LLVM/Clang 3.4. LLVM 3.4 is also really important for AMD R600 GPU users.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. 6-Way Ubuntu 14.10 Linux Desktop Benchmarks
  2. Ubuntu 14.10 XMir System Compositor Benchmarks
  3. Btrfs RAID HDD Testing On Ubuntu Linux 14.10
  4. Ubuntu 14.10 Linux 32-bit vs. 64-bit Performance
Latest Linux News
  1. Mono Brings C# To The Unreal Engine 4
  2. Coreboot Now Has Support For Intel Broadwell Hardware
  3. Enlightenment's EFL 1.12 Alpha Has Evas GL-DRM Engine, OpenGL ES 1.1 Support
  4. GTK+ Lands Experimental Backend For Mir Display Server
  5. Ubuntu 14.10 Officially Released
  6. Mesa 10.4 Might Re-Enable HyperZ For R600g/RadeonSI
  7. Intel GVT-g GPU Virtualization Moves Closer
  8. GTK+ 3.16 To Bring Several New Features
  9. Debian 8.0 Jessie Has Many Multimedia Improvements
  10. What Linux Benchmarks Would You Like To See Next?
Latest Forum Discussions
  1. Linux hacker compares Solaris kernel code:
  2. HOPE: The Ease Of Python With The Speed Of C++
  3. Advertisements On Phoronix
  4. Updated and Optimized Ubuntu Free Graphics Drivers
  5. Users/Developers Threatening Fork Of Debian GNU/Linux
  6. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  7. AMD Releases UVD Video Decode Support For R600 GPUs
  8. Proof that strlcpy is un-needed