Agenda
mars
-
14:3017:30
L'essor des réseaux de neurones profonds a révolutionné de nombreux domaines, notamment la vision par ordinateur et le traitement du langage naturel. Néanmoins, la taille croissante de ces modèles induit des exigences computationnelles de plus en plus élevées, qui mettent à l'épreuve les infrastructures de calcul actuelles. Les unités de traitement graphique (GPU pour Graphics Processing Unit), bien qu'optimisées pour les calculs massivement parallèles, peuvent être surchargées par un débit de requêtes d'inférences élevé, ce qui conduit à leur congestion et à l'explosion de la latence. Parallèlement, les unités centrales de traitement (CPU pour Central Processing Unit), souvent associées aux GPU pour des tâches de gestion, ne sont pas pleinement exploitées malgré leur potentiel pour traiter certaines tâches moins intensives en calcul. Il paraît donc pertinent d'utiliser les CPU disponibles pour assister les GPU dans leurs calculs d'inférence. Dans cette thèse, nous proposons StarONNX, une solution visant à accélérer les calculs d'inférence sur des systèmes de calcul hétérogènes combinant CPU et GPU, particulièrement en cas de forte charge d'inférences.
StarONNX repose sur l'intégration de partitions de modèles DNN obtenues grâce à l'outil de partitionnement METIS. Ce dernier permet de réaliser un découpage asymétrique du volume de calcul. StarONNX s'appuie sur StarPU, un système d'exécution optimisé pour la planification dynamique des tâches sur des architectures multicoeurs hétérogènes et sur ONNX Runtime, un moteur performant pour l'inférence de modèles au format ONNX. Grâce à cette combinaison,
StarONNX exploite les capacités spécifiques de chaque processeur pour améliorer le débit et la latence des inferences tout en maintenant une gestion efficace des ressources. Notre approche repose sur la combinaison de méthodes issues du domaine du calcul haute performance visant à maximiser l'utilisation des ressources disponibles. Premièrement, nous utilisons la possibilité de superposer dans le temps les calculs et les communications entre les processeurs.
Deuxièmement, nous optimisons l'utilisation des ressources de calcul en regroupant les coeurs CPU pour exécuter les tâches. Troisièmement, nous introduisons un pipelining des tâches d'inférence, permettant d'exécuter simultanément différentes étapes du traitement sur les GPU et les CPU, et donc d'augmenter le parallélisme et le débit. En comparant notre solution au serveur d'inférence Triton de NVIDIA, nous constatons des améliorations notables en termes de minimisation de la latence. Notre solution repousse le seuil de congestion du système à des débits plus élevés et exploite pleinement les capacités des CPU, précédemment sous-utilisées. Malgré un surcoût en latence introduit par le partitionnement, celui-ci demeure acceptable pour un partitionnement en deux ou trois segments.Salle Ada Lovelace (Inria)
avril
-
13:0014:00
Space Robotics for On-Orbit Services
Philippe Cais
https://u-bordeaux-fr.zoom.us/j/83483228567Remote -
14:0015:00
Seminaire en presentiel
178