Plantilla parallel_for heterogénea implementada en INTEL ONEAPI

Loading...
Thumbnail Image

Identifiers

Publication date

Reading date

Authors

Domínguez Berdún, Juan Pedro

Collaborators

Tutors

Editors

Journal Title

Journal ISSN

Volume Title

Publisher

Metrics

Google Scholar

Share

Research Projects

Organizational Units

Journal Issue

Department/Institute

Abstract

Este trabajo consiste en el desarrollo e implementación de un template de alto nivel, basado en la librería oneTBB de Intel, que permita la ejecución de bucles paralelos de forma heterogénea (Heterogeneous Parallel For). El template se apoya en un planificador llamado LogFit que permite el reparto automático de la carga entre los cores de CPU y la GPU. Se proporciona una implementación basada en oneTBB 2020 que usa las clases Flow Graph con soporte de nodos OpenCL, y otra basada en oneAPI/SYCL y oneTBB 2021 que permite mantener en el mismo fuente el código de GPU y el de CPU. Este nuevo template permite la ejecución de forma fácil y eficiente de bucles paralelos sobre plataformas heterogéneas CPU GPU, simplemente proporcionándole el rango de iteraciones del bucle, la función a ejecutar en CPU (en caso de ser este el dispositivo elegido para ejecutar un subrango de las mismas) y el kernel (en lenguaje OpenCL o en SYCL) a ejecutar en la GPU (en caso de ser esta la elegida). Además de la implementación del template y la comprobación de su correcto funcionamiento, se ha realizado una comparación de rendimientos entre distintas implementaciones de dos kernels computacionales. Además del rendimiento se ha evaluado tanto la sobrecarga de la nueva abstracción y la reducción del esfuerzo de programación.

Description

Bibliographic citation

Endorsement

Review

Supplemented By

Referenced by

Creative Commons license

Except where otherwised noted, this item's license is described as Attribution-NonCommercial-NoDerivatives 4.0 Internacional