Aprendizado de máquina incrível para compiladores e otimização de programas
Uma lista selecionada de artigos de pesquisa, conjuntos de dados e ferramentas incríveis para aplicar técnicas de aprendizado de máquina a compiladores e otimização de programas.
Conteúdo
- Artigos
- Enquete
- Compilação Iterativa e Ajuste de Opção do Compilador
- Otimização em nível de instrução
- Mapeamento de paralelismo e agendamento de tarefas
- Idiomas e Compilação
- Ajuste automático e exploração de espaço de design
- Redução do tamanho do código
- Modelos de custo e desempenho
- Otimização específica de domínio
- Representação do Programa de Aprendizagem
- Habilitando ML em compiladores e otimização de sistemas
- Modelagem/Análise de Memória/Cache
- Livros
- Palestras e Tutoriais
- Programas
- Benchmarks e conjuntos de dados
- Conferências
- Diários
- Como contribuir
Artigos
Enquete
- Aprendizado de máquina na otimização do compilador - Zheng Wang e Michael O'Boyle, Proceedings of the IEEE, 2018
- Uma pesquisa sobre ajuste automático de compiladores usando aprendizado de máquina - Amir H. Ashouri, William Killian, John Cavazos, Gianluca Palermo e Cristina Silvano, ACM Computing Surveys (CSUR), 2018
- Uma pesquisa sobre aprendizado de máquina para código grande e naturalidade - Miltiadis Allamanis, Earl T. Barr, Premkumar Devanbu e Charles Sutton, ACM Computing Surveys (CSUR), 2018
- Uma taxonomia de ML para problemas de sistemas - Martin Maas, IEEE Micro, 2020
- O compilador de aprendizado profundo: uma pesquisa abrangente - Mingzhen Li, Yi Liu, Xiaoyan Liu, Qingxiao Sun, Xin You, Hailong Yang, Zhongzhi Luan, Lin Gan, Guangwen Yang, Depei Qian, IEEE Transactions on Parallel and Distributed Systems, 2021
Compilação Iterativa e Ajuste de Opção do Compilador
- SRTuner: Personalização eficaz da otimização do compilador expondo relações sinérgicas - Sunghyun Park, Salar Latifi, Yongjun Park, Armand Behroozi, Byungsoo Jeon, Scott Mahlke. CGO 2022.
- Otimização de compilação iterativa baseada em aprendizagem métrica e filtragem colaborativa - Hongzhi Liu, Jie Luo, Ying Li, Zhonghai Wu. ACM TACO 2022.
- A otimização bayesiana é superior à pesquisa aleatória para ajuste de hiperparâmetros de aprendizado de máquina: análise do desafio de otimização da caixa preta 2020 - Ryan Turner, David Eriksson, Michael McCourt, Juha Kiili, Eero Laaksonen, Zhen Xu, Isabelle Guyon. arXiv 2021.
- Bliss: ajuste automático de aplicativos complexos usando um conjunto de diversos modelos de aprendizagem leves - RB Roy, T Patel, V Gadepally, D Tiwari. PLDI 2021.
- Autoajuste eficiente do compilador via otimização bayesiana - Junjie Chen, Ningxin Xu, Peiqi Chen, Hongyu Zhang. ICSE 2021.
- Pesquisa personalizada de árvore de Monte Carlo para transformações de otimização de loop combinável de LLVM/Polly - Jaehoon Koo, Prasanna Balaprakash, Michael Kruse, Xingfu Wu, Paul Hovland, Mary Hall. Arxiv.org, 2021.
- Reordenação básica de blocos aprimorada - Andy Newell e Sergey Pupyrev. Transações IEEE em computadores, 2020.
- Otimização do compilador neural estático via Deep Reinforcement Learning - Rahim Mammadli, Ali Jannesari, Felix Wolf. Workshop LLVM HPC, 2020.
- Espaço de pesquisa de ajuste automático para transformações de loop - Michael Kruse, Hal Finkel, Xingfu Wu. Workshop LLVM HPC, 2020.
- Uma abordagem de filtragem colaborativa para o ajuste automático de otimizações do compilador - Stefano Cereda, Gianluca Palermo, Paolo Cremonesi e Stefano Doni, LCTES 2020.
- Autofase: ordenação de fases do compilador para hls com aprendizado por reforço profundo. Ameer Haj-Ali, Qijing Huang, William Moses, John Xiang, Ion Stoica, Krste Asanovic, John Wawrzynek. MLSys 2020.
- FuncyTuner: aplicações científicas de ajuste automático com compilação por loop - Tao Wang, Nikhil Jain, David Beckingsale, David Böhme, Frank Mueller, Todd Gamblin. ICPP 2019.
- Micomp: Mitigando o problema de ordenação de fases do compilador usando subsequências de otimização e aprendizado de máquina - Amir H. Ashouri, Andrea Bignoli, Gianluca Palermo, Cristina Silvano, Sameer Kulkarni e John Cavazos. Transações ACM sobre arquitetura e otimização de código (TACO) 2017.
- Otimização de cronograma iterativo para paralelização no modelo poliedro - Stefan Ganser, Armin Grösslinger, Norbert Siegmund, Sven Apel e Christian Lengauer. Transações ACM sobre arquitetura e otimização de código (TACO), 2017.
- Aprendendo a superotimizar programas - Rudy Bunel, Alban Desmaison, M. Pawan Kumar, Philip HS Torr, Pushmeet Kohlim. ICLR 2017
- Aprendizagem contínua de heurísticas de compiladores - Michele Tartara e Stefano Crespi Reghizzi. Transações ACM sobre arquitetura e otimização de código (TACO), 2013.
- Mitigando o problema de ordenação de fases de otimização do compilador usando aprendizado de máquina - Sameer Kulkarni e John Cavazos. OOPSLA 2012.
- Uma avaliação de diferentes técnicas de modelagem para compilação iterativa - Eunjung Park, Sameer Kulkarni e John Cavazos. CASOS 2011.
- Avaliando a otimização iterativa em 1.000 conjuntos de dados - Yang Chen, Yuanjie Huang, Lieven Eeckhout, Grigori Fursin, Liang Peng, Olivier Temam e Chengyong Wu. PLDI 2010
- Otimização iterativa no modelo poliédrico: Parte II, tempo multidimensional - Louis-Noël Pouchet, Cédric Bastoul, Albert Cohen e John Cavazos. PLDI 2008.
- Cole: exploração do nível de otimização do compilador - Kenneth Hoste e Lieven Eeckhout. CGO 2008.
- MILEPOST GCC: compilador de pesquisa baseado em aprendizado de máquina - Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson et al., 2008
- Avaliando algoritmos de busca de ordem de fase de otimização heurística - JW Davidson, Gary S. Tyson, DB Whalley e PA Kulkarni. CGO 2007.
- Selecionar rapidamente boas otimizações do compilador usando contadores de desempenho - John Cavazos, Grigori Fursin, Felix Agakov, Edwin Bonilla, Michael FP O'Boyle e Olivier Temam. CGO 2007.
- Usando aprendizado de máquina para focar na otimização iterativa - Felix Agakov, Edwin Bonilla, John Cavazos, Björn Franke, Grigori Fursin, Michael FP O'Boyle, John Thomson, Marc Toussaint e Christopher KI Williams. CGO 2006.
- Compilação dinâmica específica do método usando regressão logística - John Cavazos e Michael FP O'boyle. OOPSLA 2005.
- Predição de fatores de desenrolamento usando classificação supervisionada - Mark Stephenson e Saman Amarasinghe. CGO 2005.
- Pesquisas rápidas por sequências de fase de otimização eficazes - Prasad Kulkarni, Stephen Hines, Jason Hiser, David Whalley, Jack Davidson e Douglas Jones. PLDI 2004.
Otimização em nível de instrução
- RL4ReAl: Aprendizagem por Reforço para Alocação de Registros - S. VenkataKeerthy, Siddharth Jain, Anilava Kundu, Rohit Aggarwal, Albert Cohen, Ramakrishna Upadrasta. CC 2023.
- Distribuição de loop assistida por aprendizagem por reforço para localidade e vetorização - Shalini Jain, S. VenkataKeerthy, Rohit Aggarwal, Tharun Kumar Dangeti, Dibyendu Das, Ramakrishna Upadrasta. Workshop LLVM HPC 2022.
- Descobrindo algoritmos de multiplicação de matrizes mais rápidos com aprendizagem por reforço - Fawzi, Alhussein, Matej Balog, Aja Huang, Thomas Hubert, Bernardino Romera-Paredes, Mohammadamin Barekatain, Alexander Novikov et al. Natureza 2022
- Um Ambiente de Aprendizagem por Reforço para Otimizações Poliédricas - Alexander Brauckmann, Andrés Goens, Jeronimo Castrillon. PACTO, 2021.
- Técnicas de compilador com tecnologia de IA para otimização de código DL - Sanket Tavarageri, Gagandeep Goyal, Sasikanth Avancha, Bharat Kaul, Ramakrishna Upadrasta. Arxiv.org, 2021.
- VeGen: um gerador de vetorizador para SIMD e além - Yishen Chen, Charith Mendis, Michael Carbin, Saman Amarasinghe. ASPLOS 2021.
- Algoritmo híbrido de coloração de gráficos baseado em aprendizado profundo para alocação de registros - Dibyendu Das, Shahid Asghar Ahmad, Kumar Venkataramanan. Workshop LLVM HPC, 2020.
- NeuroVectorizer: vetorização ponta a ponta com aprendizagem por reforço profundo - Ameer Haj-Ali, Nesreen K. Ahmed, Ted Willke, Yakun Sophia Shao, Krste Asanovic e Ion Stoica. CGO 2020.
- Liberando o poder da aprendizagem: uma abordagem aprimorada baseada na aprendizagem para tradução binária dinâmica - Changheng Song, Wenwen Wang, Pen-Chung Yew, Antonia Zhai, Weihua Zhang. USENIX ATC 2019.
- Autovetorização do compilador com aprendizagem por imitação - Charith Mendis, Cambridge Yang, Yewen Pu, Saman P. Amarasinghe, Michael Carbin. NeuroIPS 2019.
- Exploração multiobjetivo para decisões práticas de otimização em tradução binária - Sunghyun Park, Youfeng Wu, Janghaeng Lee, Amir Aupov e Scott Mahlke. Transações ACM em Sistemas de Computação Embarcados (TECS), 2019.
- Construção automática de heurísticas inlining usando aprendizado de máquina. - Sameer Kulkarni, John Cavazos, Christian Wimmer e Douglas Simon. CGO 2013.
- Ajuste automático de heurísticas inlining - John Cavazos e Michael O'Boyle. SC 2005.
- Induzindo heurísticas para decidir se agendar - John Cavazos e J. Eliot B. Moss. PLDI 2003.
- Meta otimização: Melhorando a heurística do compilador com aprendizado de máquina - Mark Stephenson, Saman Amarasinghe, Martin Martin e Una-May O'Reilly. PLDI 2003.
- Aprendendo a programar código linear - J. Eliot B. Moss, Paul E. Utgoff, John Cavazos, Doina Precup, Darko Stefanovic, Carla E. Brodley e David Scheeff. NeuroIPS 1998.
Ajuste automático e exploração de espaço de design
- Autoajuste acelerado de kernels de GPU para computação de tensores - Chendi Li e Yufan Xu e Sina Mahdipour Saravani e P. Sadayappan. ICS 2024.
- Revelando heurísticas de compilador por meio de descoberta e otimização automatizadas - Volker Seeker, Chris Cummins, Murray Cole, Björn Franke, Kim Hazelwood, Hugh Leather. CGO 2024.
- O Algoritmo de Busca de Droplet para Escalonamento de Kernel - Michael Canesche, Vanderson M. Rosario, Edson Borin, Fernando Magno Quintão Pereira. ACM TACO 2024
- BaCO: Uma estrutura de otimização de compilador bayesiano rápida e portátil - Erik Hellsten, Artur Souza, Johannes Lenfers, Rubens Lacouture, Olivia Hsu, Adel Ejjeh, Fredrik Kjolstad, Michel Steuwer, Kunle Olukotun, Luigi Nardi. ASPLOS 2024.
- (De/Re)-Composições expressas sistematicamente por meio de programações baseadas em MDH - Ari Rasch, Richard Schulze, Denys Shabalin, Anne Elster, Sergei Gorlatch, Mary Hall. CC 2023.
- Convoluções de ajuste automático são mais fáceis do que você pensa - Nicolas Tollenaere, Guillaume Iooss, Stéphane Pouget, Hugo Brunie, Christophe Guillon, Albert Cohen, P. Sadayappan, Fabrice Rastello. ACM TACO 2022.
- Ajuste de transferência: reutilizando programações automáticas para geração eficiente de código de programa tensor - Perry Gibson, Jose Cano. PACTO 2022.
- Vislumbre: Incorporação matemática de especificação de hardware para compilação neural - Byung Hoon Ahn, Sean Kinzer, Hadi Esmaeilzadeh. DCA 2022.
- Sintonizador único para compiladores de aprendizado profundo - Jaehun Ryu, Eunhyeok Park, Hyojin Sung. CC 2022.
- Uma abordagem flexível para ajuste automático de compiladores de aprendizado de máquina multipass - Phitchaya Mangpo Phothilimthana, Amit Sabne, Nikhil Sarda, Karthik Srinivasa Murthy, Yanqi Zhou, Christof Angermueller, Mike Burrows, Sudip Roy, Ketan Mandke, Rezsa Farahani, Yu Emma Wang, Berkin Ilbeyi , Blake Hechtman, Bjarke Roune, Shen Wang, Yuanzhong Xu, e Samuel J. Kaufman. PACTO 2021.
- TASO: Otimizando Computação de Aprendizado Profundo com Geração Automática de Substituições de Gráficos - Zhihao Jia, Oded Padon, James Thomas, Todd Warszawski, Matei Zaharia e Alex Aiken. ACM SOSP 2019.
- Aprendizado de valor para otimização de rendimento de cargas de trabalho neurais profundas - Benoit Steiner, Chris Cummins, Horace He, Hugh Leather. MLSys 2021.
- DynaTune: Otimização do Programa Tensor Dinâmico em Compilação de Rede Neural Profunda - Minjia Zhang, Menghao Li, Chi Wang, Mingqin Li. ICLR 2021.
- Otimizando o posicionamento da memória usando aprendizagem por reforço de gráfico evolutivo - Shauharda Khadka, Estelle Aflalo, Mattias Mardar, Avrech Ben-David, Santiago Miret, Shie Mannor, Tamir Hazan, Hanlin Tang, Somdeb Majumdar. ICLR 2021.
- GPTune: Aprendizado multitarefa para aplicativos de autoajuste Exascale - Yang Liu, Wissam M. Sid-Lakhdar, Osni Marques, Xinran Zhu, Chang Meng, James W. Demmel, Xiaoye S. Li. PPoPP 2021.
- approxTuner: um compilador e sistema de tempo de execução para aproximações adaptativas - Hashim Sharif, Yifan Zhao, Maria Kotsifakou, Akash Kothari, Ben Schreiber, Elizabeth Wang, Yasmin Sarita, Nathan Zhao, Keyur Joshi, Vikram S. Adve, Sasa Misailovic, Sarita Adve. PPoPP 2021.
- Autoajuste eficiente de programas paralelos com parâmetros de ajuste interdependentes via Auto-Tuning Framework (ATF) - Ari Rasch, Richard Schulze, Michel Steuwer, Sergei Gorlatch. ACM TACO 2021.
- Chameleon: Otimização de código adaptativo para compilação acelerada de redes neurais profundas - Byung Hoon Ahn, Prannoy Pilligundla, Amir Yazdanbakhsh, Hadi Esmaeilzadeh. ICLR 2020.
- Ansor: Gerando programas tensores de alto desempenho para aprendizagem profunda - Lianmin Zheng, Chengfan Jia, Minmin Sun, Zhao Wu, Cody Hao Yu, Ameer Haj-Ali, Yida Wang, Jun Yang, Danyang Zhuo, Koushik Sen, Joseph E. Gonzalez, Íon Estóica. OSDI 2020. (slides, apresentação)
- Um sintonizador automático algorítmico baseado em padrões para processamento de gráficos em GPUs - Ke Meng, Jiajia Li, Guangming Tan, Ninghui Sun. PPoPP 2019.
- FBNet: Design ConvNet eficiente e ciente de hardware por meio de pesquisa de arquitetura neural diferenciável - Bichen Wu, Xiaoliang Dai, Peizhao Zhang, Yanghan Wang, Fei Sun, Yiming Wu, Yuandong Tian, Peter Vajda, Yangqing Jia, Kurt Keutzer. CVPR 2019.
- TVM: Um compilador automatizado de otimização ponta a ponta para aprendizado profundo - Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Haichen Shen, Meghan Cowan et al., OSDI 2018
- BARCO: Construindo sintonizadores automáticos com otimização bayesiana estruturada - Valentin Dalibard, Michael Schaarschmidt e Eiko Yoneki, WWW 2017.
- Cobayn: Estrutura de autoajuste do compilador usando redes bayesianas - Amir H. Ashouri, Giovanni Mariani, Gianluca Palermo, Eunjung Park, John Cavazos e Cristina Silvano, ACM Transactions on Architecture and Code Optimization (TACO), 2016.
- Escolha algorítmica de ajuste automático para sensibilidade de entrada - Yufei Ding, Jason Ansel, Kalyan Veeramachaneni, Xipeng Shen, Una-May O'Reilly e Saman Amarasinghe. PLDI 2015
- Rápido: uma estrutura de autoajuste rápido de estêncil baseada em um modelo espacial de solução ideal - Yulong Luo, Guangming Tan, Zeyao Mo e Ninghui Sun. Transações ACM sobre arquitetura e otimização de código (TACO), 2015.
- Desempenho da GPU e ajuste de potência usando árvores de regressão - Wenhao Jia, Elba Garza, Kelly A. Shaw e Margaret Martonosi. SC 2015.
- Otimização térmica inter e intra-aplicação baseada em aprendizado de reforço para melhoria da vida útil de sistemas multicore - Anup K Das, Rishad Ahmed Shafik, Geoff V Merrett, Bashir M Al-Hashimi, Akash Kumar, Bharadwaj Veeravalli. DAC 2014
- Opentuner: Uma estrutura extensível para ajuste automático de programas - Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O'Reilly e Saman Amarasinghe. PACTO 2014
- Domando a complexidade de E/S paralela com ajuste automático - Babak Behzad, Huong Vu Thanh Luu, Joseph Huchette, Surendra Byna, Ruth Aydt, Quincey Koziol e Marc Snir. SC 2013.
- Uma estrutura de autoajuste multiobjetivo para códigos paralelos - Herbert Jordan, Peter Thoman, Juan J. Durillo, Simone Pellegrini, Philipp Gschwandtner, Thomas Fahringer e Hans Moritsch. SC 2012.
- Otimização baseada em bandidos em gráficos com aplicação para ajuste de desempenho de biblioteca - Frédéric De Mesmay, Arpad Rimmel, Yevgen Voronenko e Markus Püschel. ICML 2009.
- Combinação de modelos e pesquisa empírica guiada para otimizar vários níveis da hierarquia de memória - Chun Chen, Jacqueline Chame e Mary Hall. CGO 2005
- Harmonia ativa: rumo ao ajuste automatizado de desempenho - Cristian Tapus, I-Hsin Chung, Jeffrey K. Hollingsworth. SC 2002
Mapeamento de paralelismo e agendamento de tarefas
- Exploração de modelos de Redes Neurais Convolucionais para classificação de código-fonte - Francesco Barchi, Emanuele Parisi, Gianvito Urgese, Elisa Ficarra e Andrea Acquaviva. Aplicações de Engenharia de Inteligência Artificial, janeiro de 2021.
- Piloto automático: escalonamento automático de carga de trabalho no Google - Krzysztof Rzadca, Pawel Findeisen, Jacek Swiderski, Przemyslaw Zych, Przemyslaw Broniek, Jarek Kusmierek, Pawel Nowak, Beata Strack, Piotr Witusowski, Steven Hand, John Wilkes. EuroSys 2020. diapositivos
- Modelagem e otimização de efeitos NUMA e pré-busca com aprendizado de máquina - Isaac Sánchez Barrera, David Black-Schaffer, Marc Casas, Miquel Moretó, Anastasiia Stupnikova e Mihail Popov. ICS 2020.
- Poise: Equilibrando o paralelismo em nível de thread e o desempenho do sistema de memória em GPUs usando aprendizado de máquina - Saumay Dublish, Vijay Nagarajan e Nigel Tophama. HPCA 2019.
- Colocação de dados e threads em arquiteturas NUMA: Uma abordagem de aprendizagem estatística - Nicolas Denoyelle, Brice Goglin, Emmanuel Jeannot e Thomas Ropars. ICPP 2019.
- Mapeamento de código em plataformas heterogêneas usando Deep Learning e LLVM-IR - Francesco Barchi, Gianvito Urgese, Enrico Macii e Andrea Acquaviva. DCA 2019.
- Otimização adaptativa para programas OpenCL em sistemas heterogêneos embarcados - Ben Taylor, Vicent Sanz Marco e Zheng Wang. LCTES 2017.
- Melhorando o rendimento do aplicativo Spark por meio da co-localização de tarefas com reconhecimento de memória: uma abordagem mista de especialistas - Vicent Sanz Marco, Ben Taylor, Barry Porter e Zheng Wang. Middleware 2017.
- Agendamento multitarefa inteligente para programas OpenCL em plataformas heterogêneas de CPU/GPU - Yuan Wen, Zheng Wang e Michael FP O'Boyle. HiPC 2015.
- Quasar: gerenciamento de cluster com eficiência de recursos e reconhecimento de QoS - Christina Delimitrou e Christos Kozyrakis. ASPLOS 2014.
- Mapeamento automático e portátil de programas paralelos de dados para opencl para sistemas heterogêneos baseados em GPU - Zheng Wang, Dominik Grewe e Michael O'boyle. Transações ACM sobre arquitetura e otimização de código (TACO), 2014.
- Integrando detecção de paralelismo baseada em perfil e mapeamento baseado em aprendizado de máquina - Zheng Wang, Georgios Tournavitis, Björn Franke e Michael FP O'boyle. Transações ACM sobre arquitetura e otimização de código (TACO), 2014.
- Desempenho portátil em arquiteturas heterogêneas - Phitchaya Mangpo Phothilimthana, Jason Ansel, Jonathan Ragan-Kelley, Saman Amarasinghe. ASPLOS 2013.
- Mapeamento inteligente e adaptativo do paralelismo na presença de carga de trabalho externa - Murali Krishna Emani, Zheng Wang e Michael O'Boyle. CGO 2013.
- Particionando paralelismo de streaming para multi-cores: uma abordagem baseada em aprendizado de máquina - Zheng Wang e Michael O'Boyle. PACTO 2010.
- Qilin: explorando paralelismo em multiprocessadores heterogêneos com mapeamento adaptativo - Chi-Keung Luk, Sunpyo Hong e Hyesoon Kim. MICRO 2009.
- Mapeando o paralelismo para multinúcleos: uma abordagem baseada em aprendizado de máquina - Zheng Wang e Michael O'Boyle. PPoPP 2009.
Otimização específica de domínio
- Vidente: Seleção preditiva de kernel em tempo de execução para problemas irregulares - Ryan Swann, Muhammad Osama, Karthik Sangaiah, Jalal Mahmud. CGO 2024
- Otimização do Programa Tensor com Programas Probabilísticos - Junru Shao, Xiyou Zhou, Siyuan Feng, Bohan Hou, Ruihang Lai, Hongyi Jin, Wuwei Lin, Masahiro Masuda, Cody Hao Yu, Tianqi Chen. NeuroIPS 2022
- moTuner: uma abordagem de autoajuste baseada em compilador para operadores de precisão mista - Zewei Mo, Zejia Lin, Xianwei Zhang, Yutong Lu. CF 2022
- Colagem: Integração automatizada de back-ends de aprendizado profundo - Byungsoo Jeon, Sunghyun Park, Peiyuan Liao, Sheng Xu, Tianqi Chen, Zhihao Jia. PACTO 2022
- Aprendendo invariantes de loop não linear com redes lógicas contínuas fechadas - J. Yao, G. Ryan, J. Wong, S. Jana e R. Gu. PLDI 2020.
- Alocação de memória baseada em aprendizagem para cargas de trabalho de servidor C++ - Maas, Martin, David G. Andersen, Michael Isard, Mohammad Mahdi Javanmard, Kathryn S. McKinley e Colin Raffel. ASPLOS 2020. pré-nação
- Preenchendo a lacuna entre o aprendizado profundo e a seleção de formato de matriz esparsa - Yue Zhao, Jiajia Li, Chunhua Liao e Xipeng Shen. PPoPP 2018.
- Camel: Otimização de energia inteligente e adaptativa para interações na Web móvel - Jie Ren, Y. Lu, Petteri Nurmi, Xiaoming Wang, Miao Ma, Ling Gao, Zhanyong Tang, Jie Zheng e Zheng Wang. INFOCOM 2020.
- Otimizando a classificação com algoritmos genéticos - Xiaoming Li, Maria Jesus Garzaran e David Padua. CGO 2005.
Idiomas e Compilação
- (De/Re)-Composição de Computações Paralelas de Dados via Homomorfismos Multidimensionais - Ari Rasch, TOPLAS 2024.
- Halide: uma linguagem e compilador para otimizar paralelismo, localidade e recomputação em pipelines de processamento de imagens - Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand e Saman Amarasinghe, PLDI 2013.
- PetaBricks: uma linguagem e compilador para escolha algorítmica - Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman e Saman Amarasinghe. PLDI 2009.
- Alcançando alto desempenho de maneira funcional: uma pérola funcional para expressar otimizações de alto desempenho como estratégias de reescrita - Bastian Hagedorn, Johannes Lenfers, Thomas K{oe}hler, Xueying Qin, Sergei Gorlatch e Michel Steuwer. Procedimentos do ACM sobre Linguagens de Programação 2020.
Redução do tamanho do código
- Aprendendo pedidos de passagem do compilador usando Coreset e previsão de valor normalizado - Youwei Liang, Kevin Stone, Ali Shameli, Chris Cummins, Mostafa Elhoushi, Jiadong Guo, Benoit Steiner, Xiaomeng Yang, Pengtao Xie, Hugh Leather, Yuandong Tian. ICML 2023.
- POSET-RL: Ordenação de fases para otimização de tamanho e tempo de execução usando aprendizado por reforço - Shalini Jain, Yashas Andaluri, S. VenkataKeerthy, Ramakrishna Upadrasta. ISPASS 2022.
- Explorando o espaço de sequências de otimização para redução de tamanho de código: insights e ferramentas - Anderson Faustino da Silva, Bernardo NB de Lima e Fernando Magno Quintao Pereira. CC 2021. Código e Dados
- Usando aprendizado de máquina para prever o impacto do tamanho do código da heurística de duplicação em um compilador dinâmico - Raphael Mosaner, David Leopoldseder, Lukas Stadler e Hanspeter Mössenböck. MPLR 2021.
- ANGHABENCH: uma suíte com um milhão de benchmarks C compiláveis para redução de tamanho de código - Anderson Faustino da Silva, Bruno Conde Kind, José Wesley de Souza Magalhães, Jerônimo Nunes Rocha, Breno Campos Ferreira Guimarães, Fernando Magno Quintao Pereira. CGO 2021. Código e Dados
- Debloating de software guiado por aprendizado por reforço - Nham Le Van, Ashish Gehani, Arie Gurfinkel, Susmit Jha e Jorge A. Navas. MLSys 2019.
- Otimizando para espaço de código reduzido usando algoritmos genéticos - Keith D. Cooper, Philip J. Schielke e Devika Subramanian. LCTES 1999.
Modelos de custo e desempenho
- TLP: Um modelo de custo baseado em aprendizagem profunda para ajuste de programa tensor - Yi Zhai, Yu Zhang, Shuo Liu, Xiaomeng Chu, Jie Peng, Jianmin Ji, Yanyong Zhang, ASPLOS, 2023.
- Detetive de desempenho: Dedução automática de modelos de desempenho baratos e precisos - Larissa Schmid, Marcin Copik, Alexandru Calotoiu, Dominik Werle, Andreas Reiter, Michael Selzer, Anne Koziolek, Torsten Hoefler, ICS, 2022.
- Previsão de desempenho baseada em rede neural para migração de tarefas em muitos núcleos S-NUCA - Martin Rapp, Anuj Pathania, Tulika Mitra, Jörg Henkel, IEEE Transactions on Computers, 2021.
- Um modelo de custo baseado em aprendizagem profunda para otimização automática de código - Riyadh Baghdadi, Massinissa Merouani, Mohamed-Hicham LEGHETTAS, Kamel Abdous, Taha Arbaoui, Karima BENATCHBA, Saman amarasinghe, MLSys 2021
- Análise comparativa da estrutura de código usando aprendizado profundo para previsão de desempenho - Nathan Pinnow, Tarek Ramadan, Tanzima Z. Islam, Chase Phelps, Jayaraman J. Thiagarajan, ISPASS 2021
- Extraindo modelos de desempenho limpo de programas contaminados - Marcin Copik, Alexandru Calotoiu, Tobias Grosser, Nicolas Wicki, Felix Wolf, Torsten Hoefler. PPoPP 2021.
- PMEvo: Inferência portátil de mapeamentos de portas para processadores fora de ordem por otimização evolutiva - Fabian Ritter, Sebastian Hack. PLDI 2020.
- Um método de aprendizagem ativa para modelagem empírica em ajuste de desempenho - Jiepeng Zhang, Jingwei Sun, Wenju Zhou, Guangzhong Sun. IPDPS 2020.
- Aprendendo a otimizar haleto com pesquisa em árvore e programas aleatórios - Andrew Adams, Karima Ma, Luke Anderson, Riyadh Baghdadi, Tzu-Mao Li, Michael Gharbi, Benoit Steiner, Steven Johson, Kayvon Fatahalian, Fredo Durand, Jonathan Ragan-Kelley. Gráfico ACM Trans, 2019.
- Ithemal: Estimativa de rendimento de bloco básico precisa, portátil e rápida usando redes neurais profundas - Charith Mendis, Alex Renda, Saman Amarasinghe e Michael Carbin. ICML 2019.
- Absinto: Aprendendo um modelo de desempenho analítico para fundir e agrupar códigos de estêncil de uma só vez - Tobias Gysi, Tobias Grosser e Torsten Hoefler. PACTO 2019.
- Prever novas cargas de trabalho ou desempenho de CPU analisando conjuntos de dados públicos - Yu Wang, Victor Lee, Gu-Yeon Wei e David Brooks. Transações ACM sobre arquitetura e otimização de código (TACO), 2019.
- Criação automática de modelos de seleção de tamanho de ladrilho - Tomofumi Yuki, Lakshminarayanan Renganarayanan, Sanjay Rajopadhye, Charles Anderson, Alexandre E. Eichenberger e Kevin O'Brien. CGO 2010.
- Modelos empíricos sensíveis à microarquitetura para otimizações de compiladores - Kapil Vaswani, Matthew J. Thazhuthaveetil, YN Srikant e PJ Joseph. CGO 2007.
- Estimadores estáticos precisos para otimização de programas - Tim A. Wagner, Vance Maverick, Susan L. Graham e Michael A. Harrison. PLDI 1994.
Representação do Programa de Aprendizagem
- Incorporações de desempenho: uma abordagem de ajuste de transferência baseada em similaridade para otimização de desempenho - L Trümper, T Ben-Nun, P Schaad, A Calotoiu, T Hoefler. ICS 2023.
- Melhorando a análise binária multiplataforma usando aprendizagem de representação por meio de alinhamento de gráficos - Geunwoo Kim, Sanghyun Hong, Michael Franz, Dokyung Song. ISSTA 2022.
- Representações do Programa para Compilação Preditiva: Situação no Início dos Anos 20 - Anderson Faustino da Silva, Edson Borin, Fernando Magno Quintao Pereira, Nilton Luiz Queiroz Junior e Otavio Oliveira Napoli. JCL 2022. Código e dados
- Análise comparativa da estrutura de código usando aprendizado profundo para previsão de desempenho - DNathan Pinnow, Tarek Ramadan, Tanzima Z. Islam, Chase Phelps, Jayaraman J. Thiagarajan. ISPASS 2021.
- GraphCodeBERT: Representações de código de pré-treinamento com fluxo de dados - Daya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng, Duyu Tang, Shujie LIU, Long Zhou, Nan Duan, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin Clement , Dreno do Amanhecer, Neel Sundaresan, Jian Yin, Daxin Jiang, Ming Zhou. ICLR 2021.
- CodeBERT:Um modelo pré-treinado para programação e linguagens naturais - Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, Ming Zhou. EMNLP 2020.
- IR2VEC: Embeddings de programas escaláveis baseados em IR LLVM - S. VenkataKeerthy, Rohit Aggarwal, Shalini Jain, Maunendra Sankar Desarkar, Ramakrishna Upadrasta e YN Srikant. TAC 2020.
- Modelagem profunda da estrutura do programa por meio de aprendizagem multi-relacional baseada em gráficos - Guixin Ye, Zhanyong Tang, Huanting Wang, Jianbin Fang, Songfang Huang e Zheng Wang. PACTO 2020.
- Modelos Relacionais Globais de Código Fonte - Vincent J. Hellendoorn, Charles Sutton, Rishabh Singh, Petros Maniatis, David Bieber, ICLR 2020. (Dados e Código)
- Aprendendo incorporações de programas semânticos com rede neural de intervalo de grafos - Yu Wang, Ke Wang, Fengjuan Gao e Linzhang Wang. OOPSLA 2020.
- Flow2Vec: Incorporação de código preciso baseado em fluxo de valor - Yulei Sui, Xiao Cheng, Guanqin Zhang e Haoyu Wang. OOPSLA 2020.
- MISIM: Um sistema de similaridade de código neural ponta a ponta - Fangke Ye, Shengtian Zhou, Anand Venkat, Ryan Marcus, Nesime Tatbul, Jesmin Jahan Tithi, Paul Petersen, Timothy Mattson, Tim Kraska, Pradeep Dubey, Vivek Sarkar e Justin Gottschlich. arXiv 2020.
- Incorporações de programas semânticos precisos e combinados - Ke Wang e Zhendong Su. PLDI 2020.
- LambdaNet: Inferência de tipo probabilístico usando redes neurais de grafos - Jiayi Wei, Maruth Goyal, Greg Durrett e Isil Dillig. ICLR 2020.
- Representações gráficas baseadas em compilador para modelos de código de aprendizagem profunda - Alexander Brauckmann, Andrés Goens, Sebastian Ertel e Jeronimo Castrillon. CC 2020.
- Modelagem de código generativo com gráficos - Marc Brockschmidt, Miltos Allamanis, Alexander L. Gaunt e Oleksandr Polozov. ICLR 2019.
- code2seq: Gerando sequências a partir de representações estruturadas de código - Uri Alon, Shaked Brody, Omer Levy e Eran Yahav. ICLR 2019.
- code2vec: Aprendendo representações distribuídas de código - Uri Alon, Meital Zilberstein, Omer Levy e Eran Yahav. POPL 2019.
- COSET: Uma referência para avaliação de incorporações de programas neurais - Ke Wang, Mihai Christodorescu. arXiv 2019.
- Aprendendo a representar programas com gráficos - Miltiadis Allamanis, Marc Brockschmidt e Mahmoud Khademi. ICLR 2018.
- Compreensão do código neural: uma representação que pode ser aprendida da semântica do código - Tal Ben-Nun, Alice Shoshana Jakobovits e Torsten Hoefler. NeuroIPS 2018.
- Aprendizado profundo ponta a ponta de heurísticas de otimização - Chris Cummins, Pavlos Petoumenos, Zheng Wang e Hugh Leather (slides). PACTO 2017.
- Amostragem de programas com reconhecimento semântico - Pratiksha Thaker, Daniel Tarlow e Marc Brockschmidt. NeuroIPS 2017.
- DeepCoder: Aprendendo a escrever programas - Matej Balog, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin e Daniel Tarlow. ICLR 2017.
- Redes neurais convolucionais sobre estruturas em árvore para processamento de linguagem de programação - Lili Mou, Ge Li, Lu Zhang, Tao Wang e Zhi Jin. AAAI 2016.
- Uma rede de atenção convolucional para resumo extremo do código-fonte - Miltos Allamanis, Hao Peng e Charles Sutton. ICML 2016.
- Modelos generativos estruturados de código-fonte natural - Chris Maddison e Daniel Tarlow. ICML 2014.
- Usando caracterização de programa baseada em gráficos para modelagem preditiva - Eunjung Park, John Cavazos e Marco A. Alvarez. CGO 2011.
- Geração automática de recursos para compilação de otimização baseada em aprendizado de máquina - Hugh Leather, Edwin Bonilla e Michael O'Boyle. CGO 2009.
- Uma estrutura baseada em jogos para comparar classificadores e evasores de programas - Thais Damásio, Michael Canesche, Vinicius Pacheco, Anderson Faustino da Silva, Marcus Botacin e Fernando Magno Quintao Pereira. CGO 2023. Código e Dados
Habilitando ML em compiladores e otimização de sistemas
- Aprimorando a robustez do modelo preditivo em tempo de implantação para análise e otimização de código - Huanting Wang, Patrick Lenihan, Zheng Wang. CGO 2025. (Código)
- O dialeto de transformação MLIR - Seu compilador é mais poderoso do que você pensa - Martin Paul Lücke, Oleksandr Zinenko, William S. Moses, Michel Steuwer, Albert Cohen. Arxiv 2024.
- Compilador de modelo de linguagem Meta Large: modelos básicos de otimização de compilador - Chris Cummins, Volker Seeker, Dejan Grubisic, Baptiste Roziere, Jonas Gehring, Gabriel Synnaeve, Hugh Leather. Arxiv 2024.
- As próximas 700 otimizações de compilador habilitadas para ML - S. VenkataKeerthy, Siddharth Jain, Umesh Kalvakuntla, Pranav Sai Gorantla, Rajiv S Chitale, Eugene Brevdo, Albert Cohen, Mircea Trofin, Ramakrishna Upadrasta. CC 2024.
- BenchPress: um gerador de benchmark profundamente ativo - Foivos Tsimpourlas, Pavlos Petoumenos, Min Xu, Chris Cummins, Kim Hazelwood, Ajitha Rajan, Hugh Leather. PACTO 2022 (código)
- Automatizando o projeto de arquitetura de aprendizagem por reforço para otimização de código - Huanting Wang, Zhanyong Tang, Cheng Zhang, Jiaqi Zhao, Chris Cummins, Hugh Leather, Zheng Wang. CC 2022 (código)
- Aprendendo representações semânticas para verificar projetos de hardware - Shobha Vasudevan, Wenjie (Joe) Jiang, David Bieber, Rishabh Singh, hamid shojaei, C. Richard Ho, Charles Sutton. NeuroIPS 2021
- Geração de código modular e combinável em MLIR: uma abordagem estruturada e redirecionável para construção de compilador tensor - Nicolas Vasilache, Oleksandr Zinenko, Aart JC Bik, Mahesh Ravishankar, Thomas Raoux, Alexander Belyaev, Matthias Springer, Tobias Gysi, Diego Caballero, Stephan Herhut, Stella Laurenzo, Albert Cohen. arXiV 2022
- Coevolução profunda baseada em PNL para sintetizar análise de código a partir de linguagem natural - Zifan Nan, Hui Guan, Xipeng Shen, Chunhua Liao. CC 2021
- MLGO: uma estrutura de otimização de compilador guiada por aprendizado de máquina - Mircea Trofin, Yundi Qian, Eugene Brevdo, Zinan Lin, Krzysztof Choromanski, David Li. arXiv. Código
- Rumo a uma melhor compreensão do ajuste automático da caixa preta: uma análise comparativa para sistemas de armazenamento - Zhen Cao, Vasily Tarasov, Sachin Tiwari e Erez Zadok. ATC 2018.
- Sinteses de referência para modelagem preditiva - Chris Cummins, Pavlos Petoumenos, Zheng Wang e Hugh Leather (slides). CGO 2017.
- Minimizando o custo da compilação iterativa com a aprendizagem ativa - William Ogilvie, Pavlos Petoumenos, Zheng Wang e Hugh Leather. CGO 2017.
- Vespa: perfil estático para otimização binária - Angelica Aparecida Moreira, Guilherme Ottoni e Fernando Magno Quintao Pereira. Oopsla 2021. Código e dados
- Computação de mapeamento em sistemas multicore heterogêneos com regressão estatística nas entradas do programa - Junio Cezar Ribeiro da Silva, Lorena Leao, Vinicius Petrucci, Abdoulaye Gamatie e Fernando Magno Quintao Pereira. TECS 2021.
Modelagem/análise de memória/cache
- Optimizing Memory Mapping Using Deep Reinforcement Learning - Pengming Wang, Mikita Sazanovich, Berkin Ilbeyi, Phitchaya Mangpo Phothilimthana, Manish Purohit, Han Yang Tay, Ngân Vũ, Miaosen Wang, Cosmin Paduraru, Edouard Leurent, Anton Zhernov, Julian Schrittwieser, Thomas Hubert, Robert Tung, Paula Kurylowicz, Kieran Milan, Oriol Vinyals, Daniel J. Mankowitz. ARXIV 2023.
- Aprendendo padrões de acesso à memória - Milad Hashemi, Kevin Swersky, Jamie A. Smith, Grant Ayers, Heiner Litz, Jichuan Chang, Christos Kozyrakis, Parthasarathy Ranganathan. ICML 2018
- Previsão estática de lojas silenciosas - Fernando Magno Quintao Pereira, Guilherme Vieira Leobas e Abdoulaye Gamatie. Taco 2019. Código e dados
Livros
- Ajuste automático de compiladores usando o aprendizado de máquina - Amir H. Ashouri, Gianluca Palermo, John Cavazos e Cristina Silvano. Springer 2018.
- Ajuste automático de software-de conceitos a resultados de última geração-K Naono, K Teranishi, J Cavazos e R Suda. Springer 2010.
Conversas e tutoriais
- Saman Amarasinghe, Compiler 2.0: Usando o aprendizado de máquina para modernizar a tecnologia do compilador. LCTES 2020.
- Amir Ashouri, compilador AutoTuning usando o aprendizado de máquina: uma revisão de última geração (slides). Universidade Politécnica de Milão 2018.
Programas
- PROM - Um kit de ferramentas do Python para ajudar a identificar a mis de predicção do modelo de ML após a implantação (papel).
- ML-Compiler-Bridge-Biblioteca para compiladores de interface e modelos ML para otimizações de compilador habilitadas para ML (papel).
- Supersonic - Automatize o design da arquitetura de aprendizado de reforço (papel).
- Compilergym - Ambientes de Aprendizagem de Reforço para Otimizações do Compilador (Paper).
- Codebert - Modelos DNN pré -treinados para linguagens de programação (papel).
- IR2VEC - INCLIMAÇÕES DE PROGRAMA BASEIRA DE IR LLVM PARA ANESA DE MACHINE (PAPEL).
- Programl - Representação do Programa LLVM e XLA IR para Aprendizado de Machine (Paper).
- Neurovectorizer - Usando aprendizado de reforço profundo (RL) para prever o compilador de vetorização ideal Pragmas (papel).
- TVM - Open Deep Learning Compiler Stack para CPU, GPU e aceleradores especializados (papel; slides).
- CLGEN - Gerador de benchmark usando LSTMS (papel; slides).
- Cobayn - AutoTuning do compilador usando BNS (papel).
- OpenUner-Framework para criar autootuadores de programa multi-objetivos específicos do domínio (papel; slides)
- Onnx -MLIR - Representação e redução de referência dos modelos ONNX na infraestrutura do compilador MLIR (papel).
- IREE - Um compilador de aprendizado de máquina baseado em MLIR retargetável e kit de ferramentas de tempo de execução.
Benchmarks e conjuntos de dados
- Tenset: Um conjunto de dados de desempenho do programa em larga escala para compiladores de tensores instruídos - um conjunto de dados de registros de desempenho do programa tensoras para seis plataformas de hardware comumente usadas (papel).
- As cargas de trabalho de Alberta para o Spec CPU® 2017 Benchmark Suite - Cargas de trabalho adicionais para o conjunto de benchmark Spec CPU2017.
- Projeto CodeNet - amostras de código escritas em mais de 50 linguagens de programação, anotadas com informações, como tamanho de código, pegada de memória, tempo de execução da CPU e status (tipos de aceitação/erro)
- CodexGlue - Um conjunto de dados de benchmark de aprendizado de máquina para compreensão e geração de código (papel)
- Anghabench - uma suíte com um milhão de benchmarks C compiláveis (papel)
- BHIVE - Uma estrutura de medição e estrutura de medição para validar os modelos de desempenho de bloco básico X86-64 (papel).
- CBEnch - 32 C Benchmarks com conjuntos de dados e scripts de driver.
- Polybench - 30 benchmarks de estêncil e algebra linear com conjuntos de dados e scripts de driver. Veja também: versão da GPU, conjuntos de dados pré-computados (papel).
- DeepDataFlow-arquivos 469K LLVM-IR e etiquetas de análise de fluxo de dados 8.6b para classificação (papel).
- Devmap - 650 OpenCl Benchmark Recursos e rótulos de classificação CPU/GPU (papel; slides).
Conferências
- Conferência ACM Sigplan sobre Projeto e Implementação da Linguagem de Programação, PLDI
- Suporte arquitetônico para linguagens de programação e sistemas operacionais, asplos
- Simpósio ACM Sigplan sobre princípios e prática de programação paralela, PPOPP
- Simpósio internacional sobre geração e otimização de código, CGO
- Conferência Internacional sobre Arquiteturas Paralleas e Técnicas de Compilação, Pacto
- Programação, sistemas, idiomas e aplicativos orientados a objetos, Oopsla
- Conferência Internacional sobre Construção do Compilador, CC
- Conferência Internacional sobre Supercomputação, ICS
- Conferência Internacional sobre Arquiteturas e Compiladores Incorporados e Incorporados, HipeAC
- Conferência Internacional sobre Idiomas, Compiladores e Ferramentas para sistemas incorporados, LCTES
- Conferência Internacional sobre Fronteiras de Computação, cf
- Simpósio de processamento paralelo e distribuído internacional, IPDPS
- Conferência Internacional para Computação de Alto Desempenho, Networking, Armazenamento e Análise, SC
- Machine Learning and Programming Languages Workshop, MAPL
- Idiomas e compiladores para computação paralela, LCPC
- Conferência Internacional sobre Representações de Aprendizagem, ICLR
- Conferência sobre aprendizado de máquina e sistemas, MLSYS
Diários
- Transações ACM sobre arquitetura e otimização de código, taco
Como contribuir
Veja diretrizes de contribuição. Tl; dr: envie um dos mantenedores uma solicitação de tração.