OpenCL Tutorials

OpenCL

  • Arm Guide to OpenCL
  • Real-time Dense Passive Stereo Vision
  • OpenCL for Arm Mali GPUs FAQ Whitepaper
  • OpenCL Implementing JPEG
  • OpenCL Optimizing Convolution
  • Optimizing Canny Edge Detection
  • OpenCL Optimizing Pyramid

Arm Guide to OpenCL

The Developer Guide for OpenCL development on Mali GPUs includes information on general OpenCL development as well as special considerations when developing on Mali GPUs to achieve good performance and improve power efficiency.

Real-time Dense Passive Stereo Vision: a Case Study in optimizing Computer Vision applications using OpenCL on Arm

Gian Marco Iodice, Software Engineer, Arm

Passive stereo vision is a powerful visual sensing technique aimed at inferring depth without using any structured light. Nowadays, as it offers low cost and reliability solutions, it finds application in many real use cases, such as natural user interfaces, industrial automation, autonomous vehicles, and many more. Since stereo vision algorithms are extremely computationally expensive, resulting in very high CPU load, the aim of this presentation is to demonstrate the feasibility of this task on a low power mobile Arm Mali GPU. In particular, the presentation will focus on a local stereo vision method based on a novel extension of census transform, which exploits the highly parallel execution feature of mobile Graphic Processing Units with OpenCL.  The presentation will show also the approaches and the strategies used to optimize the OpenCL code in order to reach significant performance benefits on the GPU.

OpenCL for Arm Mali GPUs FAQ Whitepaper

This document provides answers to common questions that developers have when using OpenCL on Arm Mali GPUs.

OpenCL Implementing JPEG

This tutorial provides some details of an example implementation of JPEG using an Arm Mali Midgard GPU, and describes some methods for optimizing a JPEG compression process. The optimization methods are provided to demonstrate how similar processes can be improved.

OpenCL Optimizing Convolution

This tutorial provides an example optimization process for running convolution operations using an Arm Mali Midgard GPU. This process can improve performance significantly.

Optimizing Canny Edge Detection

This tutorial provides advice and information on the principals of GPU compute to software developers who want to improve the use of the available hardware in platforms that perform Canny edge detection.

OpenCL Optimizing Pyramid

This tutorial describes an example optimization process for running pyramid operations using an Arm Mali Midgard GPU. This process can improve performance significantly.