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 Articles & Reviews
  1. Intel Broadwell: GCC 4.9 vs. LLVM Clang 3.5 Compiler Benchmarks
  2. Ubuntu vs. Fedora Linux On Lenovo's X1 Carbon With Core i7 Broadwell
  3. Ubuntu 15.04 Is The Easy Path To Better Performance On Intel Broadwell
  4. NVIDIA's Latest Maxwell Line-Up Against AMD With Catalyst On Linux
  5. Preliminary Tests Of Intel Sandy Bridge & Ivy Bridge vs. Broadwell
  6. AMD FX-8320E Performance On Linux
Latest Linux News
  1. Calamares 1.0 Distribution-Independent Installer Framework Released
  2. Librem 15 Linux Laptop Set To Close At Around $400k USD
  3. Virtual GEM To Increase Mesa's Software Rasterizer Performance
  4. Open Lunchbox: Yet Another Open-Source Laptop Attempt
  5. Wayland/Weston 1.7 Release Candidate
  6. Bugzilla 5.0 Is Coming Soon With New Features
  7. Linux Benchmarking... Even Faster & A Very Interesting February
  8. Does VirtualBox VM Have Much A Future Left?
  9. HAMMER2 File-System Is Still Slowly Coming Together
  10. The Better Looking Window Decorations For GNOME 3.16
Most Viewed News This Week
  1. PlayStation 4 System Compiler Support Landing In LLVM
  2. Linux "GHOST" Vulnerability Hits Glibc Systems
  3. LibreOffice 4.4 Is Coming Soon With New Features
  4. Broadwell Linux Ultrabook Running MUCH Cooler Than Haswell
  5. LZHAM 1.0 Lossless Data Compression Codec Released
  6. LLVM Adds Options To Do Fuzz Testing
  7. Vivaldi: A New Chromium-Powered, Multi-Platform Browser
  8. LibreOffice 4.4 Released With Better OOXML Support, UI Improvements