Aller au menu Aller au contenu
L'école d'ingénieur en systèmes avancés et réseaux

> Entreprises > Projets Industriels

PI04 - Accélération hybride logicielle et matérielle d’un algorithme pour l’impression numérique

Logo

Mots-clé

Impression numérique, Parallélisme, HDD, RAMDisk, GPGPU, unités vectorielles, multithread, machines distribuées
 

 

Millésime

2012-2013

Entreprise

CALDERA

Equipe projet

BLOT Adrien
ORFILA Jean-Baptiste
SÉVERIN Nicolas

 

 

Présentation de l'entreprise

CALDERA est un éditeur de logiciels à destination des acteurs de l'imagerie grand format. Ses objectifs sont : l'amélioration de la productivité et de la rentabilité de l'imprimerie, l'amélioration du rendu colorimétrique des imprimantes.

Contexte du projet

Les industriels de l'impression grand format ont maintenant besoin d'imprimer un grand nombre d'images différentes en gardant une cadence élevée (10 000 posters/heure). Or, le fait que chaque image soit différente oblige qu'il y ait un prétraitement avant chaque impression, dont la durée n'est pas négligeable. Afin d'anticiper les futures capacités d'impression, CALDERA souhaite accélérer d'un facteur 20 sa suite logicielle prépresse.

Objectifs

Ce projet a pour but de réaliser une étude sur l'optimisation d'algorithme, le parallélisme, et les supports de stockage. Elle permettra d'inventorier les solutions les plus efficaces pour accélérer l'algorithme de tramage, dernière étape des traitements prépresse. Cet algorithme consiste à déterminer le nombre, la position et la taille de chaque point d'encre nécessaire pour reproduire une couleur. Il représente l'entrave principale en termes de débit de la suite logicielle prépresse.



Déroulement du projet

Le projet peut être découpé en trois étapes : une étude générale sur le parallélisme, une étude sur les différentes technologies de parallélisation, et enfin une étape d'implémentation, tests et optimisations sur les technologies choisies.

L'étude générale consiste à prospecter sur le parallélisme ; les grands principes derrière ce terme, ainsi que les technologies existantes. Les technologies retenues sont :
  • GPGPU (CUDA, OpenCL) : Effectuer des calculs non destinés à l'affichage sur une ou plusieurs cartes graphiques
  • Machines distribuées (MPI) : Distribuer les calculs sur plusieurs machines (cluster)
  • Multithreading : Utiliser les différents cœurs de calculs d'un processeur
  • SIMD (SSE, AVX) : Faire des calculs sur des vecteurs plutôt que sur des scalaires

Dans un second temps, nous nous sommes formés sur les architectures, qui requièrent des savoir-faire différents.  De plus, dans le but de pouvoir les comparer entre elles, une méthodologie de test est rédigée. Elle définit précisément comment mesurer le débit, et les paramètres étudiés.

La dernière étape du projet consiste à  adapter  et à optimiser l'algorithme de tramage sur les différents supports. Le langage de base utilisé est le C, accompagné des bibliothèques adaptées.

Des implémentations mélangeant plusieurs de ces architectures sont aussi envisagées, afin d'améliorer encore le facteur d'accélération. C'est au cours de cette étape que le dossier technique est rédigé, contenant les résultats et leurs analyses. Il permettra à l'entreprise de faire un choix sur la technologie la plus prometteuse, qu'elle intégrera à sa suite logicielle.
   

Résultats obtenus

Les accélérations suivantes sont obtenues :
  • GPGPU : x6,5
  • SIMD + MULTITHREAD : x7
  • GPGPU + SIMD + MULTITHREAD : x11




mise à jour le 1 avril 2014

Grenoble INP Institut d'ingénierie Univ. Grenoble Alpes