Profiling High Level Heterogeneous Programs: Using the SPOC GPGPU framework for OCaml

Mathias Bourgoin, Emmanuel Chailloux, Anastasios Doumoulakis
Univ. Orleans, INSA Centre Val de Loire, LIFO EA 4022, FR-45067 Orleans, France
Tenth International Workshop on Programmability and Architectures for Heterogeneous Multicores (MULTIPROG), 2017


   title={Profiling High Level Heterogeneous Programs},

   author={Bourgoin, Mathias and Chailloux, Emmanuel and Doumoulakis, Anastasios},



Heterogeneous systems are widespread. When neatly used, they enable an impressive performance increase. However, they typically demand developers to combine multiple programming models, languages and tools into very complex programs that are hard to design and debug. Writing correct heterogeneous programs is difficult, achieving good performance is even harder. To help developers, many high-level solutions have been developed, in particular for GPGPU programming (combining a CPU host with one or many GPUs). Most of the time, these solutions generate part of the code that will actually be executed and insulate the programmer from low-level architectural details. They help build efficient and safer programs, but they leave programmers clueless when facing complex bugs or when trying to optimize their application further. In this paper, we propose to enable profiling of heterogeneous applications built using such tools. We present our solution for the SPOC GPGPU framework for the OCaml programming language. Using this framework, we show how it is possible to provide relevant information to the developer focusing on the different parts of GPGPU programs: firstly, by instrumenting the high-level runtime host library of the framework, second, by benefiting from the dynamic generation of co-processor subprograms (GPGPU kernels) in this kind of frameworks to automatically instrument and measure computations, in order to provide developers understandable feedback on their programs. The solution we present, using simple examples, enables profiling of high-level systems in very heterogeneous systems that can combine a CPU host with numerous very different co-processors.
No votes yet.
Please wait...

You must be logged in to post a comment.

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: