LLVM Now Has "Official" Support For Targeting NEC's Vector Engine (VE)
NEC originally launched the SX-Aurora Vector Engine (VE) back in 2018 as a PCI Express accelerator card and supporting up to eight vector processors per server. The NEC SX-Aurora has its own architecture for the "VE" and is backed by HBM2 memory. The current VE processor is rated for 1.53 TB/s of memory bandwidth and a double precision peak performance of 3.07 TFLOPS or 4.91 single precision TFLOPS.
NEC started out with their own proprietary compiler toolchain for targeting software on the Vector Engine with Fortran / C / C++ support but since 2019 have been working to provide open-source support via LLVM.
Over the past two years of working on the NEC VE target upstream, it has gone from being considered experimental to now being officially supported.
Last month was a proposal to make the Vector Engine target official. The upstream support is considered "sufficient" now for handling scalar code generation from C code with target-specific vector intrinsics. The test coverage of LLVM VE has also matured in recent times. NEC is also working to upstream their Compiler RT, libcxx, and OpenMP changes too.
With that said as of the latest code for LLVM 14.0, the VE target is now official. This makes NEC's VE target built by default alongside the other current LLVM targets of AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, MIPS, MSP430, NVIDIA NVPTX, PowerPC, RISC-V, SPARC, SystemZ, WebAssembly, X86, and XCore.