Mali OpenCL SDK

Software Development Kit OpenCL™ on ARM Linux

The Mali OpenCL SDK provides developers with a framework and series of samples for developing OpenCL 1.1 applications on ARM Mali based platforms such as the Mali-T600 and above family of GPUs. The samples cover a wide range of use cases that utilize the Mali GPU to achieve a significant improvement in performance when compared to running on the CPU alone.

OpenCL is an open standard defined by Khronos that exposes the vast parallel processing capabilities of the GPU to the developer, to achieve improvements in performance and power efficiency. The samples are supported by tutorials with step-by-step guidance that describe best practises that should be used when targeting the Mali family of GPUs.

Features and benefits

Samples & Tutorials

  • Numerous samples from the basic set-up to more complex examples demonstrating common filters and OpenCL operations
  • Samples demonstrating features of OpenCL 1.1
  • Step-by-Step walk through of samples and optimization steps

Simple Project Setup

  • Simple build steps to get up and running quickly

Simple Framework

  • A lightweight framework with common helper utilities

Linux on ARM Support

  • Packages provides for support for ARM Linux based platforms with Mali-T600 Family of GPUs and OpenCL

Documentation and support

HTML Documentation included with installer package

Please submit your questions and issues to the Mali Developer Forums

Downloads & Resources


OpenCL Examples Included

Hello World

  • Basic Introduction to OpenCL and Vectorization.
  • Starts with moving C code to OpenCL and improving performance by utilizing vectorization

Template

  • Skeleton code that can be used for starting OpenCL development

Memory Buffers

  • Sharing memory efficiently between the ARM Cortex-A processor and a Mali GPU

Image Objects

  • See how using image objects for textures and images can simplify development and increase performance

64-bit Integer and Atomic

  • How to use long data types and atomics with OpenCL 1.1 Full Profile

Sobel Filter

  • Implementation of a simple convolution filter used in edge detection

FIR Filter

  • Floating point FIR (Finite Input Response) image filter commonly used for pixelization and noise reduction

Mandelbrot

  • Mandelbrot fractal patterns

Single-Precision General Matrix Multiplication

  • Matrix multiplication example