Sanjay Rajopadhye est professeur d'informatique à l'Université d'État du Colorado, où il dirige des recherches sur la compilation polyédrique et ses applications aux systèmes d'apprentissage automatique. Ses travaux se concentrent sur les fondements mathématiques des transformations de boucles, qui sont essentiels pour optimiser le code sur les matériels parallèles et accélérateurs modernes. Rajopadhye est actif dans ce domaine depuis les années 1980, contribuant à la théorie et à la pratique de la conception de réseaux systoliques, puis aux techniques de compilation utilisées dans les cadres d'apprentissage profond.
Les recherches de Rajopadhye font le pont entre l'informatique théorique et l'ingénierie des systèmes pratiques. Il est surtout connu pour ses contributions au modèle polyédrique, un cadre pour représenter et transformer les boucles imbriquées dans les programmes. Ce modèle sous-tend de nombreux compilateurs modernes pour le calcul haute performance, y compris ceux utilisés dans les accélérateurs de apprentissage automatique. Son groupe à l'Université d'État du Colorado a développé des outils et des algorithmes qui améliorent l'efficacité du code généré pour les processeurs multi-cœurs, les GPU et les matériels spécialisés comme les processeurs AMD et Intel.
Début de carrière et formation
Rajopadhye a obtenu son doctorat en informatique à l'Université de l'Utah en 1986, où il a travaillé sous la supervision de Richard M. Fujimoto. Sa thèse de doctorat portait sur les réseaux systoliques, une classe d'architectures de calcul parallèle qui étaient importantes dans les années 1980. Après son doctorat, il a occupé des postes à l'Université de l'Oregon et à l'Institut national de recherche en informatique et en automatique (INRIA) en France, où il a collaboré avec des chercheurs sur le langage Alpha, un langage fonctionnel conçu pour spécifier et synthétiser des algorithmes de réseaux réguliers.
En 1995, Rajopadhye a rejoint la faculté de l'Université d'État du Colorado. Au cours des décennies suivantes, il a constitué un groupe de recherche reconnu pour ses travaux sur le modèle polyédrique. Il a supervisé de nombreux étudiants en doctorat, dont Uday Bondhugula, qui a ensuite co-développé le compilateur polyédrique PLUTO, et d'autres qui ont poursuivi des carrières dans le milieu universitaire et l'industrie.
Recherche sur la compilation polyédrique
La contribution centrale de Rajopadhye se situe dans le domaine de la compilation polyédrique, qui utilise des représentations mathématiques des boucles imbriquées pour permettre une optimisation systématique. Son article de 2008, co-écrit avec Bondhugula et d'autres, a introduit le compilateur PLUTO, qui parallélise et tuile automatiquement les boucles à l'aide du modèle polyédrique. Ce travail a été publié dans les actes de la conférence ACM SIGPLAN sur la conception et l'implémentation de langages de programmation (PLDI) et a été largement cité dans la communauté des compilateurs.
Ses recherches ont également abordé le problème de l'optimisation de l'organisation de la mémoire et de la localité des données, qui sont essentielles pour les performances sur les systèmes de mémoire hiérarchiques modernes. En 2013, il a publié des travaux sur la dérivation de schémas de tuilage efficaces pour les calculs de stencils, un motif courant dans le calcul scientifique et les charges de travail de apprentissage profond. Ces techniques ont été adoptées dans plusieurs compilateurs open-source et commerciaux, y compris ceux utilisés par Google DeepMind et d'autres organisations de recherche en IA.
Applications aux systèmes d'apprentissage automatique
Dans les années 2010, Rajopadhye s'est tourné vers l'intersection de la compilation polyédrique et des systèmes d'intelligence artificielle. Il a reconnu que les noyaux de calcul dans l'entraînement et l'inférence des réseaux de neurones, comme les multiplications de matrices et les convolutions, pouvaient bénéficier des mêmes techniques de transformation de boucles utilisées dans le calcul scientifique. Son groupe a développé des méthodes pour optimiser les opérations tensorielles dans des cadres comme TensorFlow et PyTorch, en se concentrant sur la réduction du trafic mémoire et l'amélioration du parallélisme.
Un projet notable a été le développement d'un optimiseur basé sur la polyédrie pour l'inférence de grands modèles de langage, qui réduit la latence sur le matériel de classe serveur. Ce travail a impliqué des collaborations avec des chercheurs de Nokia Bell Labs et Samsung Research, où Rajopadhye a été scientifique invité. Ses idées ont influencé la conception des piles de compilation pour AWS Trainium et d'autres puces spécialisées en IA, bien qu'il n'ait pas été directement employé par ces entreprises.
Enseignement et mentorat
À l'Université d'État du Colorado, Rajopadhye a enseigné des cours sur les compilateurs, le calcul parallèle et la théorie du calcul. Il est connu pour son approche rigoureuse de l'enseignement et son accent sur les fondements mathématiques. Il a reçu plusieurs prix d'enseignement de l'université, dont le prix d'excellence en enseignement du Collège des sciences naturelles en 2017. Il a également encadré des chercheurs postdoctoraux et des professeurs invités d'institutions telles que l'Université de Toronto et Berkeley AI Research.
Ses étudiants ont occupé des postes de premier plan. Bondhugula, par exemple, est devenu professeur à l'Indian Institute of Science, où il continue de travailler sur la compilation polyédrique. Un autre ancien étudiant, Albert Cohen, a collaboré avec Rajopadhye sur le langage Alpha et est devenu plus tard chercheur chez Google Cloud, travaillant sur l'infrastructure de compilation pour les charges de travail d'IA.
Publications choisies et reconnaissance
Rajopadhye a écrit plus de 100 articles évalués par des pairs, dont beaucoup ont été publiés dans des revues et conférences de premier plan telles que PLDI, la conférence internationale sur le support architectural pour les langages de programmation et les systèmes d'exploitation (ASPLOS), et les ACM Transactions on Programming Languages and Systems. Son article PLDI de 2008 sur PLUTO a été cité plus de 1 000 fois, ce qui en fait l'un des travaux les plus influents dans le domaine de la compilation polyédrique.
En 2015, il a été élu membre senior de l'Association for Computing Machinery (ACM) en reconnaissance de ses contributions à la compilation. Il a siégé aux comités de programme de nombreuses conférences, notamment la Conférence sur la construction de compilateurs et le Symposium international IEEE sur le traitement parallèle et distribué. Il a également été conférencier principal lors d'ateliers sur le calcul haute performance et l'apprentissage automatique.
Enseignement et mentorat
À l'Université d'État du Colorado, Rajopadhye a enseigné des cours sur les compilateurs, le calcul parallèle et la théorie du calcul. Il est connu pour son approche rigoureuse de l'enseignement et son accent sur les fondements mathématiques. Il a reçu plusieurs prix d'enseignement de l'université, dont le prix d'excellence en enseignement du Collège des sciences naturelles en 2017. Il a également encadré des chercheurs postdoctoraux et des chercheurs invités d'institutions comme l'Université de Toronto et Berkeley AI Research.
Ses étudiants ont poursuivi des carrières prestigieuses. Bondhugula, par exemple, est devenu professeur à l'Indian Institute of Science, où il continue à travailler sur la compilation polyédrique. Un autre ancien étudiant, Albert Cohen, a collaboré avec Rajopadhye sur le langage Alpha et est ensuite devenu chercheur scientifique chez Google Cloud, travaillant sur l'infrastructure de compilation pour les charges de travail d'IA.
Publications choisies et reconnaissance
Rajopadhye a écrit plus de 100 articles évalués par des pairs, dont beaucoup publiés dans des forums de premier plan tels que PLDI, la Conférence internationale sur le support architectural des langages de programmation et des systèmes d'exploitation (ASPLOS) et les ACM Transactions on Programming Languages and Systems. Son article PLDI de 2008 sur PLUTO a été cité plus de 1 000 fois, ce qui en fait l'un des travaux les plus influents dans la compilation polyédrique.
En 2015, il a été élu membre senior de l'Association for Computing Machinery (ACM) en reconnaissance de ses contributions à l'optimisation des compilateurs. Il a siégé aux comités de programme de nombreuses conférences, notamment la Conférence internationale sur la construction de compilateurs et le Symposium international IEEE sur le traitement parallèle et distribué. Il a également été conférencier principal lors d'ateliers sur le calcul haute performance et les systèmes d'apprentissage automatique.
Publications choisies et reconnaissance
Rajopadhye a rédigé plus de 100 articles évalués par des pairs, dont beaucoup ont été publiés dans des conférences de premier plan telles que PLDI, la Conférence internationale sur l'architecture et les systèmes d'exploitation pour les langages de programmation (ASPLOS) et les ACM Transactions on Programming Languages and Systems. Son article de 2008 à PLDI a été cité plus de 1 000 fois, ce qui en fait l'un des travaux les plus influents dans le domaine de la compilation polyédrique.
En 2015, il a été élu membre senior de l'Association for Computing Machinery (ACM) en reconnaissance de ses contributions à l'optimisation des compilateurs. Il a siégé aux comités de programme de nombreuses conférences, notamment la Conférence internationale sur la construction de compilateurs et le Symposium international IEEE sur le traitement parallèle et distribué. Il a également été conférencier principal lors d'ateliers sur la compilation et l'architecture des machines.
Travaux actuels et orientations futures
En 2024, Rajopadhye continue de diriger des recherches sur les défis de la compilation pour les systèmes hétérogènes qui combinent des processeurs, des GPU et des accélérateurs d'IA. Ses projets récents se concentrent sur les défis de la compilation pour les systèmes hétérogènes, en particulier l'optimisation des opérations tensorielles dans les frameworks comme TensorFlow et PyTorch, en se concentrant sur la réduction du trafic mémoire et l'amélioration du parallélisme. Il explore également l'application des méthodes polyédriques à l'apprentissage des transformers, où les exigences de mémoire des grands modèles posent des défis importants.
Rajopadhye reste un collaborateur actif avec des partenaires industriels comme Oracle Cloud et CoreWeave, où il teste ses techniques sur des infrastructures d'IA basées sur le cloud. Ses travaux récents portent sur la différenciation automatique dans le modèle polyédrique, ce qui pourrait améliorer l'efficacité de l'entraînement des modèles transformers et ouvrir de nouvelles voies pour l'optimisation des systèmes d'IA générative.
Travaux actuels et orientations futures
Rajopadhye continue de diriger des recherches à l'Université d'État du Colorado, en se concentrant sur le développement de techniques de compilation pour les systèmes hétérogènes combinant processeurs, GPU et accélérateurs d'IA. Ses projets récents incluent l'exploration de méthodes polyédriques pour l'IA générative, où il étudie comment améliorer l'efficacité des transformateurs et autres architectures. Il collabore également avec des laboratoires industriels pour tester ces approches sur du matériel de pointe, notamment via des partenariats avec Oracle Research et d'autres groupes de recherche appliquée.