Latest PGCL has automatic generation of ARM NEON/SIMD instructions

Date
08/26/2012

 PDF

Click image to enlarge

PGCL Installation Overview

PGI (The Portland Group), a wholly-owned subsidiary of STMicroelectronics and a supplier of compilers and tools for high-performance computing, has released PGCL 12.7. PGCL is the PGI OpenCL framework for multi-core ARM-based SoCs, currently available on ST-Ericsson NovaThor platforms. PGCL includes a PGI OpenCL compiler for multi-core ARM CPUs as a compute device and complements OpenCL for GPUs. "This significant update to the PGI OpenCL compiler includes support for several new performance-oriented technologies along with basic debugging support, and reflects our continuing commitment to bring PGI compiler technologies developed in the high-performance computing (HPC) market to the ARM platform," said PGI director, Douglas Miles. New PGCL 12.7 Features

  • Automatic vectorization for the ARM NEON GP (General Purpose) SIMD (Single-Instruction Multiple Data) engine. NEON technology is the 128-bit SIMD architecture extension for ARM Cortex-A series CPUs, designed to accelerate multimedia and other data-processing intensive applications. NEON instructions perform packed SIMD processing on signed or unsigned 8-, 16-, 32-, and 64-bit integer, or single-precision floating-point data types. PGCL now automatically generates NEON instructions for vectorizable loops contained in OpenCL kernel functions and which operate on these data types.
  • Native dynamic OpenCL kernel compilation is now the default on Android ARM devices, enabling deployment of dynamically-compiled OpenCL kernels in production applications for mobile devices. The PGCL OpenCL dynamic compiler now recognizes optimization options including fast (PGI's default performance optimization option), Msafeptr (enables optimization in the presence of pointers), and Minfo (for displaying compiler optimization feedback to application developers).
  • Support for compiler pragmas for local control of optimizations within OpenCL source files. Optimizations that can be controlled on a loop or function basis include NEON/SIMD vectorization, loop unrolling, dependence checking, and safe pointer declarations. Pragmas are programming language constructs added to source code by programmers to instruct a compiler to process the delineated code blocks in some special manner, while maintaining full source code portability to other compilers and platforms.
  • Support for debugging of OpenCL host code and statically-compiled OpenCL kernels on Android/ARM devices using the gdb debugger or print statements.
Price and Availability PGI OpenCL targeting ST-Ericsson NovaThor platforms including code examples and sample Dalvik applications is freely available by registering. The Portland Group

RELATED

 



-->