Sanjay Rajopadhye é professor de ciência da computação na Colorado State University, onde lidera pesquisas sobre compilação poliédrica e suas aplicações a sistemas de aprendizado de máquina. Seu trabalho se concentra nos fundamentos matemáticos das transformações de loops, que são essenciales para otimizar código em hardware paralelo e aceleradores modernos. Rajopadhye está ativo no campo desde os anos 1980, contribuindo à teoria e prática do design de arrays sistólicos e, posteriormente, às técnicas de compilação usadas em frameworks de aprendizado profundo.
A pesquisa de Rajopadhye une a ciência da computação teórica e a engenhía de sistemas prática. Ele é mais conhecido por suas contribuciones ao modelo poliédrico, um framework para representar e transformar loops anidados em programas. Este modelo sustenta muitos compiladores modernos para computação de alto desempeño, incluindo os usados em aceleradores de Machine learning. Seu grupo na Colorado State desenvolveu ferramentas e algoritmos que melhoran a eficiencia do código gerado para CPUs multi-core, GPUs e hardware especializado como processadores AMD e Intel.
Início de Carreira e Educação
Rajopadhye obtuvo seu PhD em ciência da computação na University of Utah em 1986, onde trabalhou sob a supervisión de Richard M. Fujimoto. Sua tesis doctoral se concentró em arrays sistólicos, uma classe de arquitecturas de computação paralela proeminentes nos anos 1980. Após completar seu PhD, ocupó posições na University of Oregon e no Instituto Nacional Francês de Pesquisa em Ciência da Computação e Control (INRIA), onde colaboró com pesquisadores na linguagem Alpha, uma linguagem funcional designada para especificar e sintetizar algoritmos de arrays regulares.
Em 1995, Rajopadhye se unió à faculdade da Colorado State University. Nas décadas seguintes, construíu um grupo de pesquisa que se tornó conhecido por seu trabalho no modelo poliédrico. Ele supervisó numerosos estudantes de PhD, incluindo Uday Bondhugula, que posteriormente co-desarrolló o compilador poliédrico PLUTO, e outros que seguiram carreras em academia e indústria.
Pesquisa em Compilación Poliédrica
A contribución central de Rajopadhye está na área de compilación poliédrica, que usa representaciones matemáticas de loops anidados para permitir optimización sistemática. Seu artigo de 2008, co-autorado com Bondhugula e outros, introdujo o compilador PLUTO, que paraleliza e tila loops automáticamente usando o modelo poliédrico. Este trabalho foi publicado nas actas da Conferencia ACM SIGPLAN sobre Design e Implementación de Linguagens de Programación (PLDI) e tem sido amplamente citado na comunidade de compiladores.
Sua pesquisa também abordó o problema de optimización de layout de memória e localidade de datos, essenciales para desempeño em sistemas de memória hierárquica modernos. Em 2013, publicó trabalho sobre a derivación de esquemas de tiling eficientes para computações de stencil, um padrão comum em computação científica e cargas de trabalho de Deep learning. Estas técnicas foram adotadas em vários compiladores de código aberto e comerciales, incluindo os usados por Google DeepMind e outras organizações de pesquisa em IA.
Aplicaciones a Sistemas de Aprendizaje de Máquina
Nos anos 2010, Rajopadhye dirigió sua atenção à intersección de compilación poliédrica e sistemas de Artificial intelligence. Ele reconoció que os kernels computacionales no entrenamiento e inferencia de Neural network, como multiplicaciones de matrices e convoluciones, poderían beneficiarse das mesmas técnicas de transformación de loops usadas em computación científica. Seu grupo desarrolló métodos para optimizar operaciones de tensores em frameworks como TensorFlow e PyTorch, focando em reducir o tráfico de memória e melhorar o paralelismo.
Um projeto notável foi o desenvolvimento de um optimizador baseado em poliédrica para inferencia de Large language model, que reduce a latência em hardware de classe servidor. Este trabalho envolvió colaboraciones com pesquisadores em Nokia Bell Labs e Samsung Research, onde Rajopadhye servió como cientista visitante. Suas ideas influenciaron o design de stacks de compilación para AWS Trainium e outros chips de IA especializados, embora não tenha sido empregado diretamente por essas empresas.
Enseñanza e Mentoria
Na Colorado State, Rajopadhye tem enseñado cursos sobre compiladores, computación paralela e teoría da computación. Ele é conhecido por sua abordagem rigorosa ao ensino e sua ênfasis em fundamentos matemáticos. Recebió múltiples premios de enseñanza da universidade, incluindo o Premio de Excelencia em Enseñanza da College of Natural Sciences em 2017. Também mentorió pesquisadores pósdoctorales e estudiosos visitantes de instituciones como University of Toronto e BAIR (Berkeley AI Research).
Seus estudantes têm alcançado posições proeminentes. Bondhugula, por exemplo, se tornó professor no Indian Institute of Science, onde continua trabalhando em compilación poliédrica. Outro ex-estudiante, Albert Cohen, colaboró com Rajopadhye na linguagem Alpha e posteriormente se tornó cientista de pesquisa em Google Cloud, trabalhando em infraestructura de compiladores para cargas de trabalho de IA.
Publicaciones Seleccionadas e Reconocimiento
Rajopadhye tem autoriado mais de 100 artículos revisados por pares, com muitos apareciendo em venues de topo como PLDI, a Conferencia Internacional sobre Soporte Arquitectónico para Linguagens de Programación e Sistemas Operativos (ASPLOS), e as Transacciones ACM sobre Linguagens de Programación e Sistemas. Seu artigo de 2008 em PLDI sobre PLUTO tem sido citado mais de 1.000 veces, fazendo dele um dos trabalhos mais influentes em compilación poliédrica.
Em 2015, foi eleito membro sênior da Association for Computing Machinery (ACM) em reconocimiento a suas contribuciones à optimización de compiladores. Tem servido em comités de programa de numerosas conferencias, incluindo a Conferencia Internacional sobre Construcción de Compiladores e o Simposio Internacional IEEE sobre Procesamiento Paralelo e Distribuido. Também tem sido orador principal em workshops sobre computación de alto desempeño e sistemas de aprendizado de máquina.
Trabalho Actual e Direcciones Futuras
A partir de 2024, Rajopadhye continua liderando pesquisa na Colorado State, focando nos desafíos de compilar para sistemas heterogéneos que combinam CPUs, GPUs e aceleradores de IA. Seus projetos recentes incluyen desenvolver técnicas para diferenciación automática no modelo poliédrico, o que podería melhorar a eficiencia do entrenamiento de modelos Transformer (architecture). Também está explorando como métodos poliédricos podem ser aplicados a cargas de trabalho de Generative AI, onde os requisitos de memória de modelos grandes apresentan desafíos significativos de compilación.
Rajopadhye permanece como colaborador activo com laboratorios industriais, incluindo Oracle Cloud Infrastructure e Coreweave, onde seu grupo tem testado novas estrategias de compilación em infraestructura de IA baseada em nube. Seu trabalho continua unindo a brecha entre a ciência da computación teórica e as demandas práticas dos sistemas modernos de aprendizado de máquina.