Intel's BFloat16 Support Plumbed Into GCC 10 & LLVM Clang 9 Compilers
Written by Michael Larabel in Programming on 10 May 2019 at 01:14 PM EDT. Add A Comment
PROGRAMMING --
Last month Intel developers began working on adding BFloat16 support to the open-source/Linux compilers for this new instruction debuting with next-generation Xeon "Cooper Lake" server processors. That support is now squared away for GCC 10, due out next year, and LLVM Clang 9, which will be released this autumn.

BFloat16 floating-point support is intended for deep learning / machine learning workloads and will be supported by next-gen Cooper Lake processors and is also found within Nervana NNPs and FPGAs. BFloat16 has also been of interest to other companies like Google and their TPUs.

In recent weeks we've seen Intel developers contribute the B16 support for GNU Binutils. Now the compiler support has landed in the respective trees.

With GCC 9 having been recently branched and released, now that GCC 10.0 is under development on its main branch, BFloat16 support landed there with the new VNNI instructions for VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS. With missing GCC 9, this BFloat16 support will be part of the GCC 10.1 stable release due out in early Q2'2020.

Similar support also landed in LLVM/Clang. LLVM Clang 9.0 as the next release should be out in the September~October timeframe.

Both compilers are using -mavx512bf16 as the switch for enabling AVX-512 BF16 usage. That support is in place for BFloat16 while Intel hasn't yet introduced any cooperlake target for the mtune/march flags but will surely come in due course.

In addition to BF16 for further enhancing AI workloads, Cooper Lake is expected to offer PCI Express 4.0 and other improvements over Cascade Lake when released later this year.
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Related Programming News
Popular News This Week