Kernel Offloading with Optimized Remote Accesses

Autor: Alias, Christophe, Darte, Alain, Plesco, Alexandru
Přispěvatelé: Compilation and embedded computing systems (COMPSYS), Inria Grenoble - Rhône-Alpes, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire de l'Informatique du Parallélisme (LIP), École normale supérieure - Lyon (ENS Lyon)-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-École normale supérieure - Lyon (ENS Lyon)-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Université de Lyon-Centre National de la Recherche Scientifique (CNRS), INRIA, École normale supérieure de Lyon (ENS de Lyon)-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-École normale supérieure de Lyon (ENS de Lyon)-Université Claude Bernard Lyon 1 (UCBL)
Jazyk: angličtina
Rok vydání: 2011
Předmět:
Zdroj: [Research Report] RR-7697, INRIA. 2011, pp.29
Popis: The use of hardware accelerators, e.g., with GPGPUs or customized circuits using FPGAs, are particularly interesting for accelerating data- and compute-intensive applications. However, to get high performance when offloading computation kernels to such an acceleration platform, it is mandatory to restructure the application code and to generate adequate communication mechanisms to the external memory, i.e., for remote accesses. In a previous report, we showed, in the context of the high-level synthesis (HLS) of hardware accelerators, how to derive an optimized organization for an accelerator communicating to an external DDR memory. Loop tiling is used to enable block communications, suitable for DDR memories. Pipelined communication processes are generated to overlap communications and computations, thereby hiding some latencies, in a way similar to double buffering. Finally, data reuse among tiles is exploited to avoid remote accesses when data are already available in the local memory. The goal of this report is to show how to specify the sets of data to be read from and to be written to the external memory so as to reduce communications and reuse data as much as possible in the accelerator. The main difficulty in such a specification arises when some data are (re)defined in the accelerator, and even worse in the case of approximations, when some data may be redefined but this is not sure. We show that techniques based on parametric polyhedral optimizations can be used to generate the sets of data to be loaded (resp. stored) just before (resp. after) each tile. An interesting feature is that the case where no approximation is needed appears nicely as a particular case of the general procedure.; Les accélérateurs matériels, comme par exemple via l'utilisation de GPGPUs ou de circuits dédiés sur FPGAs, sont particulièrement intéressants pour accélérer les applications gourmandes en calculs et en accès aux données. En revanche, pour obtenir de bonnes performances quand on déporte un noyau de calcul sur une telle plate-forme d'accélération, il est indispensable de restructurer le code de l'application et de générer des mécanismes de communication adéquats vers la mémoire externe, c'est-à-dire pour les accès distants. Dans un rapport précédent, nous avons montré, dans le contexte de la synthèse de haut niveau (HLS) d'accélérateurs matériels, comment générer une organisation optimisée pour un accélérateur communiquant avec une mémoire externe DDR. Le tiling (tuilage) est utilisé pour permettre des transferts par blocs, adaptés aux mémoires DDR. Le pipeline de processus de communication permet le recouvrement des calculs et communications, et donc de masquer certaines latences, selon un principe similaire à la technique du double buffering. Finalement, la réutilisation des données entre différentes tuiles est exploitée pour éviter des accès distants quand les données sont déjà disponibles dans la mémoire locale. Le but de ce rapport est de montrer comment spécifier les ensembles de données a lire depuis la mémoire externe et à écrire dans cette mémoire de façon à réduire les communications et à réutiliser les données, autant que faire se peut, dans l'accélérateur. La difficulté principale dans une telle spécification apparaît lorsque certaines données sont (re)définies dans l'accélérateur, et pire dans le cas d'approximations, lorsqu'elles le sont peut-être mais que ce n'est pas certain. Nous montrons que des techniques d'optimisations polyédrales paramétrées peuvent être utilisées pour générer les ensembles de données à charger (resp. stocker) avant (resp. après) chaque tuile. Une propriété intéressante de notre méthode est que le cas où aucune approximation n'est nécessaire apparaît naturellement comme un cas particulier de la procédure générale.
Databáze: OpenAIRE