An OpenCL framework for heterogeneous multicores with local memory

  • Authors:
  • Jaejin Lee;Jungwon Kim;Sangmin Seo;Seungkyun Kim;Jungho Park;Honggyu Kim;Thanh Tuan Dao;Yongjin Cho;Sung Jong Seo;Seung Hak Lee;Seung Mo Cho;Hyo Jung Song;Sang-Bum Suh;Jong-Deok Choi

  • Affiliations:
  • Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea;Samsung Electronics, Yongin-si, South Korea;Samsung Electronics, Yongin-si, South Korea;Samsung Electronics, Yongin-si, South Korea;Samsung Electronics, Yongin-si, South Korea;Samsung Electronics, Yongin-si, South Korea;Samsung Electronics, Yongin-si, South Korea

  • Venue:
  • Proceedings of the 19th international conference on Parallel architectures and compilation techniques
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we present the design and implementation of an Open Computing Language (OpenCL) framework that targets heterogeneous accelerator multicore architectures with local memory. The architecture consists of a general-purpose processor core and multiple accelerator cores that typically do not have any cache. Each accelerator core, instead, has a small internal local memory. Our OpenCL runtime is based on software-managed caches and coherence protocols that guarantee OpenCL memory consistency to overcome the limited size of the local memory. To boost performance, the runtime relies on three source-code transformation techniques, work-item coalescing, web-based variable expansion and preload-poststore buffering, performed by our OpenCL C source-to-source translator. Work-item coalescing is a procedure to serialize multiple SPMD-like tasks that execute concurrently in the presence of barriers and to sequentially run them on a single accelerator core. It requires the web-based variable expansion technique to allocate local memory for private variables. Preload-poststore buffering is a buffering technique that eliminates the overhead of software cache accesses. Together with work-item coalescing, it has a synergistic effect on boosting performance. We show the effectiveness of our OpenCL framework, evaluating its performance with a system that consists of two Cell BE processors. The experimental result shows that our approach is promising.