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. Btrfs On 4 x Intel SSDs In RAID 0/1/5/6/10
  2. AMD Radeon R9 290 On Ubuntu 14.10: RadeonSI Gallium3D vs. Catalyst
  3. MSI X99S SLI PLUS On Linux
  4. NVIDIA GeForce GTX 970 Offers Great Linux Performance
Latest Linux Articles
  1. NVIDIA's Linux Driver Can Deliver Better OpenGL Performance Than Windows 8.1
  2. Windows 8.1 vs. Ubuntu 14.10 With Intel HD Graphics
  3. 6-Way Ubuntu 14.10 Radeon Gallium3D vs. Catalyst Driver Comparison
  4. NVIDIA vs. Nouveau Drivers On Ubuntu 14.10
Latest Linux News
  1. AMD On Linux & Systemd Were Very Popular This Month
  2. Wine 1.7.30 Continues Work On DirectWrite & Offers Regedit Fixes
  3. Has The Sky Fallen? Qualcomm Contributes To Freedreno's DRM/KMS Driver
  4. Manjaro Works To Make Calamares A Distribution-Independent Installer
  5. DisplayLink USB 3.0 Support Sounds Like A Mess
  6. PulseAudio Gains A Native Bluetooth Headset Backend
  7. X.Org Foundation Decides On Its Women Outreach Project
  8. GTK+ 3.16's New GtkGLArea Widget Gets Improved
  9. X.Org Server 1.17 ABI Bumped
  10. Fedora 21 Beta To Be Released Next Week
Latest Forum Discussions
  1. Step by Step install of Latest Nvidia Driver Article Request
  2. How to get rid of Linux
  3. Closed source to opensource
  4. What Would You Like To See Next?
  5. Is foolish currently develop in machine code, hexadecimal and assembly?
  6. Reducing The CPU Usage In Mesa To Improve Performance
  7. Help diagnosing problems with a Readon HD 4670 on Mesa 10.3.2-1
  8. Advertisements On Phoronix