Personal tools

Difference between revisions of "Extending the HERO RISC-V HPC stack to support multiple devices on heterogeneous SoCs (M/1-3S)"

From iis-projects

Jump to: navigation, search
(Created page with "<!-- Creating Extending the HERO RISC-V HPC stack to support multiple devices on heterogeneous SoCs (M/1-3S) --> Category:Digital Category:High Performance SoCs Cat...")
 
(Introduction)
Line 21: Line 21:
  
 
= Introduction =
 
= Introduction =
 +
 +
[https://www.openmp.org/specifications/ OpenMP] is an Application Programming Interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran. OpenMP allows developers to write parallel programs that can run on a wide range of hardware, including multi-core processors and symmetric multiprocessing (SMP) systems. OpenMP uses pragma directives to exploit parallelism in the annotated code regions. These directives are embedded in the source code and guide the compiler in generating parallel executable code. In addition to compiler support, an OpenMP runtime library abstracts the details of thread creation and management from the programmer, simplifying the parallelization process.
 +
 +
Starting from version 4.0, OpenMP introduced a target directive, which allows offloading computations to accelerators by explicitly specifying the code regions amenable to execute on the accelerator.
 +
 +
The HERO stack, developed at IIS, proposes an implementation of the OpenMP runtime that can run on multiple of our SoCs with a maximum of code reuse.
 +
 +
HERO is today capable of compiling separate applications for different devices, but OpenMP does not support offloading to different devices within the same application.
  
 
= Project =
 
= Project =

Revision as of 19:32, 2 February 2024


Overview

Status: Available

Introduction

OpenMP is an Application Programming Interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran. OpenMP allows developers to write parallel programs that can run on a wide range of hardware, including multi-core processors and symmetric multiprocessing (SMP) systems. OpenMP uses pragma directives to exploit parallelism in the annotated code regions. These directives are embedded in the source code and guide the compiler in generating parallel executable code. In addition to compiler support, an OpenMP runtime library abstracts the details of thread creation and management from the programmer, simplifying the parallelization process.

Starting from version 4.0, OpenMP introduced a target directive, which allows offloading computations to accelerators by explicitly specifying the code regions amenable to execute on the accelerator.

The HERO stack, developed at IIS, proposes an implementation of the OpenMP runtime that can run on multiple of our SoCs with a maximum of code reuse.

HERO is today capable of compiling separate applications for different devices, but OpenMP does not support offloading to different devices within the same application.

Project

Character

Prerequisites

References