Impresionante aprendizaje automático para compiladores y optimización de programas.
Una lista seleccionada de increíbles trabajos de investigación, conjuntos de datos y herramientas para aplicar técnicas de aprendizaje automático a compiladores y optimización de programas.
Contenido
- Papeles
- Encuesta
- Compilación iterativa y ajuste de opciones del compilador
- Optimización a nivel de instrucción
- Mapeo de paralelismo y programación de tareas
- Idiomas y compilación
- Autoajuste y diseño de exploración espacial.
- Reducción del tamaño del código
- Modelos de costo y rendimiento
- Optimización específica de dominio
- Representación del programa de aprendizaje
- Habilitación del aprendizaje automático en compiladores y optimización de sistemas
- Modelado/análisis de memoria/caché
- Libros
- Charlas y Tutoriales
- Software
- Puntos de referencia y conjuntos de datos
- Conferencias
- Revistas
- Cómo contribuir
Papeles
Encuesta
- Aprendizaje automático en la optimización del compilador: Zheng Wang y Michael O'Boyle, Actas del IEEE, 2018
- Una encuesta sobre el autoajuste del compilador mediante el aprendizaje automático: Amir H. Ashouri, William Killian, John Cavazos, Gianluca Palermo y Cristina Silvano, ACM Computing Surveys (CSUR), 2018
- Un estudio sobre el aprendizaje automático para el código grande y la naturalidad: Miltiadis Allamanis, Earl T. Barr, Premkumar Devanbu y Charles Sutton, ACM Computing Surveys (CSUR), 2018
- Una taxonomía de ML para problemas de sistemas - Martin Maas, IEEE Micro, 2020
- El compilador de aprendizaje profundo: una encuesta completa: 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
Compilación iterativa y ajuste de opciones del compilador
- SRTuner: Personalización eficaz de la optimización del compilador exponiendo relaciones sinérgicas: Sunghyun Park, Salar Latifi, Yongjun Park, Armand Behroozi, Byungsoo Jeon, Scott Mahlke. CGO 2022.
- Optimización de compilación iterativa basada en aprendizaje de métricas y filtrado colaborativo: Hongzhi Liu, Jie Luo, Ying Li, Zhonghai Wu. TACO ACM 2022.
- La optimización bayesiana es superior a la búsqueda aleatoria para el ajuste de hiperparámetros del aprendizaje automático: análisis del desafío de optimización de caja negra 2020 - Ryan Turner, David Eriksson, Michael McCourt, Juha Kiili, Eero Laaksonen, Zhen Xu, Isabelle Guyon. ArXiv 2021.
- Bliss: aplicaciones complejas de ajuste automático utilizando un conjunto de diversos modelos de aprendizaje livianos: RB Roy, T Patel, V Gadepally, D Tiwari. PLDI 2021.
- Autoajuste eficiente del compilador mediante optimización bayesiana: Junjie Chen, Ningxin Xu, Peiqi Chen, Hongyu Zhang. CISE 2021.
- Búsqueda de árbol de Monte Carlo personalizada para transformaciones de optimización de bucle componible de LLVM/Polly: Jaehoon Koo, Prasanna Balaprakash, Michael Kruse, Xingfu Wu, Paul Hovland, Mary Hall. Arxiv.org, 2021.
- Reordenamiento de bloques básico mejorado: Andy Newell y Sergey Pupyrev. Transacciones IEEE en computadoras, 2020.
- Optimización del compilador neuronal estático mediante aprendizaje por refuerzo profundo: Rahim Mammadli, Ali Jannesari, Felix Wolf. Taller LLVM HPC, 2020.
- Espacio de búsqueda de ajuste automático para transformaciones de bucle: Michael Kruse, Hal Finkel, Xingfu Wu. Taller LLVM HPC, 2020.
- Un enfoque de filtrado colaborativo para el ajuste automático de optimizaciones del compilador: Stefano Cereda, Gianluca Palermo, Paolo Cremonesi y Stefano Doni, LCTES 2020.
- Autophase: ordenamiento de fases del compilador para hls con aprendizaje por refuerzo profundo. Ameer Haj-Ali, Qijing Huang, William Moses, John Xiang, Ion Stoica, Krste Asanovic, John Wawrzynek. MLSys 2020.
- FuncyTuner: aplicaciones científicas de ajuste automático con compilación por bucle: Tao Wang, Nikhil Jain, David Beckingsale, David Böhme, Frank Mueller, Todd Gamblin. CIPP 2019.
- Micomp: mitigación del problema de ordenamiento de fases del compilador mediante subsecuencias de optimización y aprendizaje automático: Amir H. Ashouri, Andrea Bignoli, Gianluca Palermo, Cristina Silvano, Sameer Kulkarni y John Cavazos. Transacciones ACM sobre arquitectura y optimización de código (TACO) 2017.
- Optimización de programación iterativa para paralelización en el modelo poliedro: Stefan Ganser, Armin Grösslinger, Norbert Siegmund, Sven Apel y Christian Lengauer. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2017.
- Aprender a superoptimizar programas: Rudy Bunel, Alban Desmaison, M. Pawan Kumar, Philip HS Torr, Pushmeet Kohlim. ICLR 2017
- Aprendizaje continuo de la heurística del compilador - Michele Tartara y Stefano Crespi Reghizzi. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2013.
- Mitigar el problema de ordenamiento de fases de optimización del compilador mediante aprendizaje automático: Sameer Kulkarni y John Cavazos. OOPSLA 2012.
- Una evaluación de diferentes técnicas de modelado para la compilación iterativa: Eunjung Park, Sameer Kulkarni y John Cavazos. CASOS 2011.
- Evaluación de la optimización iterativa en 1000 conjuntos de datos: Yang Chen, Yuanjie Huang, Lieven Eeckhout, Grigori Fursin, Liang Peng, Olivier Temam y Chengyong Wu. PLDI 2010
- Optimización iterativa en el modelo poliédrico: Parte II, tiempo multidimensional: Louis-Noël Pouchet, Cédric Bastoul, Albert Cohen y John Cavazos. PLDI 2008.
- Cole: exploración del nivel de optimización del compilador: Kenneth Hoste y Lieven Eeckhout. CGO 2008.
- MILEPOST GCC: compilador de investigaciones basado en aprendizaje automático - Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson et al., 2008
- Evaluación de algoritmos de búsqueda de orden de fases de optimización heurística: JW Davidson, Gary S. Tyson, DB Whalley y PA Kulkarni. CGO 2007.
- Seleccionar rápidamente buenas optimizaciones del compilador utilizando contadores de rendimiento: John Cavazos, Grigori Fursin, Felix Agakov, Edwin Bonilla, Michael FP O'Boyle y Olivier Temam. CGO 2007.
- Uso del aprendizaje automático para centrar la optimización iterativa: Felix Agakov, Edwin Bonilla, John Cavazos, Björn Franke, Grigori Fursin, Michael FP O'Boyle, John Thomson, Marc Toussaint y Christopher KI Williams. CGO 2006.
- Compilación dinámica de método específico mediante regresión logística: John Cavazos y Michael FP O'boyle. OOPSLA 2005.
- Predicción de factores de desarrollo mediante clasificación supervisada: Mark Stephenson y Saman Amarasinghe. CGO 2005.
- Búsquedas rápidas de secuencias de fases de optimización eficaces: Prasad Kulkarni, Stephen Hines, Jason Hiser, David Whalley, Jack Davidson y Douglas Jones. PLDI 2004.
Optimización a nivel de instrucción
- RL4ReAl: Aprendizaje por refuerzo para la asignación de registros: S. VenkataKeerthy, Siddharth Jain, Anilava Kundu, Rohit Aggarwal, Albert Cohen, Ramakrishna Upadrasta. CC 2023.
- Distribución de bucles asistida por aprendizaje por refuerzo para localidad y vectorización: Shalini Jain, S. VenkataKeerthy, Rohit Aggarwal, Tharun Kumar Dangeti, Dibyendu Das, Ramakrishna Upadrasta. Taller LLVM HPC 2022.
- Descubrimiento de algoritmos de multiplicación de matrices más rápidos con aprendizaje por refuerzo: Fawzi, Alhussein, Matej Balog, Aja Huang, Thomas Hubert, Bernardino Romera-Paredes, Mohammadamin Barekatain, Alexander Novikov et al. Naturaleza 2022
- Un entorno de aprendizaje por refuerzo para optimizaciones poliédricas - Alexander Brauckmann, Andrés Goens, Jeronimo Castrillon. PACTO, 2021.
- Técnicas de compilación impulsadas por IA para la optimización del código DL: Sanket Tavarageri, Gagandeep Goyal, Sasikanth Avancha, Bharat Kaul, Ramakrishna Upadrasta. Arxiv.org, 2021.
- VeGen: un generador vectorizador para SIMD y más: Yishen Chen, Charith Mendis, Michael Carbin, Saman Amarasinghe. ASPLOS 2021.
- Algoritmo híbrido de coloración de gráficos basado en aprendizaje profundo para la asignación de registros: Dibyendu Das, Shahid Asghar Ahmad, Kumar Venkataramanan. Taller LLVM HPC, 2020.
- NeuroVectorizer: vectorización de un extremo a otro con aprendizaje por refuerzo profundo: Ameer Haj-Ali, Nesreen K. Ahmed, Ted Willke, Yakun Sophia Shao, Krste Asanovic e Ion Stoica. CGO 2020.
- Liberar el poder del aprendizaje: un enfoque mejorado basado en el aprendizaje para la traducción binaria dinámica - Changheng Song, Wenwen Wang, Pen-Chung Yew, Antonia Zhai, Weihua Zhang. USENIX ATC 2019.
- Autovectorización del compilador con aprendizaje por imitación: Charith Mendis, Cambridge Yang, Yewen Pu, Saman P. Amarasinghe, Michael Carbin. NeuroIPS 2019.
- Exploración de objetivos múltiples para decisiones prácticas de optimización en traducción binaria: Sunghyun Park, Youfeng Wu, Janghaeng Lee, Amir Aupov y Scott Mahlke. Transacciones ACM en sistemas informáticos integrados (TECS), 2019.
- Construcción automática de heurísticas en línea mediante aprendizaje automático. - Sameer Kulkarni, John Cavazos, Christian Wimmer y Douglas Simon. CGO 2013.
- Ajuste automático de heurísticas en línea: John Cavazos y Michael O'Boyle. SC 2005.
- Inducir heurísticas para decidir si programar - John Cavazos y J. Eliot B. Moss. PLDI 2003.
- Metaoptimización: mejora de la heurística del compilador con aprendizaje automático: Mark Stephenson, Saman Amarasinghe, Martin Martin y Una-May O'Reilly. PLDI 2003.
- Aprender a programar código en línea recta: J. Eliot B. Moss, Paul E. Utgoff, John Cavazos, Doina Precup, Darko Stefanovic, Carla E. Brodley y David Scheeff. NeurIPS 1998.
Autoajuste y diseño de exploración espacial.
- Ajuste automático acelerado de núcleos de GPU para cálculos tensoriales: Chendi Li y Yufan Xu y Sina Mahdipour Saravani y P. Sadayappan. ICS 2024.
- Revelar la heurística del compilador a través del descubrimiento y la optimización automatizados: Volker Seeker, Chris Cummins, Murray Cole, Björn Franke, Kim Hazelwood, Hugh Leather. CGO 2024.
- El algoritmo de búsqueda de gotas para la programación del kernel - Michael Canesche, Vanderson M. Rosario, Edson Borin, Fernando Magno Quintão Pereira. ACM TACO 2024
- BaCO: un marco de optimización del compilador bayesiano rápido y 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)-Composiciones expresadas sistemáticamente a través de cronogramas basados en MDH: Ari Rasch, Richard Schulze, Denys Shabalin, Anne Elster, Sergei Gorlatch, Mary Hall. CC 2023.
- El ajuste automático de convoluciones es más fácil de lo que cree: Nicolas Tollenaere, Guillaume Iooss, Stéphane Pouget, Hugo Brunie, Christophe Guillon, Albert Cohen, P. Sadayappan, Fabrice Rastello. TACO ACM 2022.
- Transfer-Tuning: Reutilización de programaciones automáticas para una generación eficiente de código de programa tensor - Perry Gibson, Jose Cano. PACTO 2022.
- Vistazo: integración matemática de la especificación de hardware para la compilación neuronal: Byung Hoon Ahn, Sean Kinzer, Hadi Esmaeilzadeh. CAD 2022.
- Sintonizador de una sola vez para compiladores de aprendizaje profundo: Jaehun Ryu, Eunhyeok Park, Hyojin Sung. CC 2022.
- Un enfoque flexible para el autoajuste de compiladores de aprendizaje automático de múltiples pasos: 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 y Samuel J. Kaufman. PACTO 2021.
- TASO: Optimización de la computación de aprendizaje profundo con generación automática de sustituciones de gráficos: Zhihao Jia, Oded Padon, James Thomas, Todd Warszawski, Matei Zaharia y Alex Aiken. ACM SOSP 2019.
- Aprendizaje de valor para la optimización del rendimiento de cargas de trabajo neuronales profundas: Benoit Steiner, Chris Cummins, Horace He, Hugh Leather. MLSys 2021.
- DynaTune: Optimización del programa de tensor dinámico en la compilación de redes neuronales profundas: Minjia Zhang, Menghao Li, Chi Wang, Mingqin Li. ICLR 2021.
- Optimización de la ubicación de la memoria mediante el aprendizaje por refuerzo de gráficos evolutivos: Shauharda Khadka, Estelle Aflalo, Mattias Mardar, Avrech Ben-David, Santiago Miret, Shie Mannor, Tamir Hazan, Hanlin Tang, Somdeb Majumdar. ICLR 2021.
- GPTune: aprendizaje multitarea para aplicaciones de autoajuste de exaescala: Yang Liu, Wissam M. Sid-Lakhdar, Osni Marques, Xinran Zhu, Chang Meng, James W. Demmel, Xiaoye S. Li. PPoPP 2021.
- ProvenceTuner: un compilador y un sistema de tiempo de ejecución para aproximaciones 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.
- Ajuste automático eficiente de programas paralelos con parámetros de ajuste interdependientes mediante marco de ajuste automático (ATF): Ari Rasch, Richard Schulze, Michel Steuwer, Sergei Gorlatch. ACM TACO 2021.
- Chameleon: optimización de código adaptativo para una compilación acelerada de redes neuronales profundas: Byung Hoon Ahn, Prannoy Pilligundla, Amir Yazdanbakhsh, Hadi Esmaeilzadeh. ICLR 2020.
- Ansor: Generación de programas tensoriales de alto rendimiento para el aprendizaje profundo: 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, Ion Estoica. OSDI 2020. (diapositivas, presentación)
- Un sintonizador automático algorítmico basado en patrones para el procesamiento de gráficos en GPU: Ke Meng, Jiajia Li, Guangming Tan, Ninghui Sun. PPoPP 2019.
- FBNet: Diseño ConvNet eficiente basado en hardware mediante búsqueda de arquitectura neuronal diferenciable: Bichen Wu, Xiaoliang Dai, Peizhao Zhang, Yanghan Wang, Fei Sun, Yiming Wu, Yuandong Tian, Peter Vajda, Yangqing Jia, Kurt Keutzer. CVPR 2019.
- TVM: un compilador automatizado de optimización de extremo a extremo para el aprendizaje profundo - Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Haichen Shen, Meghan Cowan et al., OSDI 2018
- BARCO: Construcción de sintonizadores automáticos con optimización bayesiana estructurada: Valentin Dalibard, Michael Schaarschmidt y Eiko Yoneki, WWW 2017.
- Cobayn: marco de ajuste automático del compilador utilizando redes bayesianas: Amir H. Ashouri, Giovanni Mariani, Gianluca Palermo, Eunjung Park, John Cavazos y Cristina Silvano, ACM Transactions on Architecture and Code Optimization (TACO), 2016.
- Elección algorítmica de ajuste automático para la sensibilidad de entrada: Yufei Ding, Jason Ansel, Kalyan Veeramachaneni, Xipeng Shen, Una-May O'Reilly y Saman Amarasinghe. PLDI 2015
- Rápido: un marco de ajuste automático de plantilla rápido basado en un modelo espacial de solución óptima: Yulong Luo, Guangming Tan, Zeyao Mo y Ninghui Sun. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2015.
- Rendimiento de GPU y ajuste de potencia mediante árboles de regresión: Wenhao Jia, Elba Garza, Kelly A. Shaw y Margaret Martonosi. CC 2015.
- Optimización térmica entre aplicaciones e intraaplicaciones basada en el aprendizaje de refuerzo para mejorar la vida útil de los sistemas multinúcleo: Anup K Das, Rishad Ahmed Shafik, Geoff V Merrett, Bashir M Al-Hashimi, Akash Kumar, Bharadwaj Veeravalli. CAD 2014
- Opentuner: un marco extensible para el autoajuste de programas: Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O'Reilly y Saman Amarasinghe. PACTO 2014
- Domar la complejidad de E/S paralelas con autoajuste: Babak Behzad, Huong Vu Thanh Luu, Joseph Huchette, Surendra Byna, Ruth Aydt, Quincey Koziol y Marc Snir. SC 2013.
- Un marco de autoajuste multiobjetivo para códigos paralelos: Herbert Jordan, Peter Thoman, Juan J. Durillo, Simone Pellegrini, Philipp Gschwandtner, Thomas Fahringer y Hans Moritsch. SC 2012.
- Optimización basada en Bandit en gráficos con aplicación al ajuste del rendimiento de la biblioteca: Frédéric De Mesmay, Arpad Rimmel, Yevgen Voronenko y Markus Püschel. ICML 2009.
- Combinación de modelos y búsqueda empírica guiada para optimizar múltiples niveles de la jerarquía de la memoria: Chun Chen, Jacqueline Chame y Mary Hall. CGO 2005
- Armonía activa: hacia el ajuste automatizado del rendimiento - Cristian Tapus, I-Hsin Chung, Jeffrey K. Hollingsworth. SC 2002
Mapeo de paralelismo y programación de tareas
- Exploración de modelos de redes neuronales convolucionales para la clasificación de código fuente: Francesco Barchi, Emanuele Parisi, Gianvito Urgese, Elisa Ficarra y Andrea Acquaviva. Aplicaciones de ingeniería de la inteligencia artificial, enero de 2021.
- Piloto automático: escalado automático de cargas de trabajo en 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. diapositivas
- Modelado y optimización de efectos NUMA y captación previa con aprendizaje automático: Isaac Sánchez Barrera, David Black-Schaffer, Marc Casas, Miquel Moretó, Anastasiia Stupnikova y Mihail Popov. ICS 2020.
- Equilibrio: Equilibrio del paralelismo a nivel de subprocesos y el rendimiento del sistema de memoria en GPU mediante aprendizaje automático: Saumay Dublish, Vijay Nagarajan y Nigel Tophama. HPCA 2019.
- Ubicación de datos y subprocesos en arquitecturas NUMA: un enfoque de aprendizaje estadístico: Nicolas Denoyelle, Brice Goglin, Emmanuel Jeannot y Thomas Ropars. CIPP 2019.
- Mapeo de código en plataformas heterogéneas mediante aprendizaje profundo y LLVM-IR: Francesco Barchi, Gianvito Urgese, Enrico Macii y Andrea Acquaviva. CAD 2019.
- Optimización adaptativa para programas OpenCL en sistemas heterogéneos integrados: Ben Taylor, Vicent Sanz Marco y Zheng Wang. LCTES 2017.
- Mejora del rendimiento de las aplicaciones Spark mediante la coubicación de tareas con reconocimiento de memoria: un enfoque combinado de expertos: Vicent Sanz Marco, Ben Taylor, Barry Porter y Zheng Wang. Middleware 2017.
- Programación inteligente de tareas múltiples para programas OpenCL en plataformas heterogéneas CPU/GPU: Yuan Wen, Zheng Wang y Michael FP O'Boyle. HiPC 2015.
- Quasar: gestión de clústeres eficiente en recursos y compatible con QoS: Christina Delimitrou y Christos Kozyrakis. ASPLOS 2014.
- Mapeo automático y portátil de programas paralelos de datos a opencl para sistemas heterogéneos basados en gpu: Zheng Wang, Dominik Grewe y Michael O'boyle. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2014.
- Integración de la detección de paralelismo basada en perfiles y el mapeo basado en aprendizaje automático: Zheng Wang, Georgios Tournavitis, Björn Franke y Michael FP O'boyle. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2014.
- Performance portátil sobre arquitecturas heterogéneas: Phitchaya Mangpo Phothilimthana, Jason Ansel, Jonathan Ragan-Kelley, Saman Amarasinghe. ASPLOS 2013.
- Mapeo inteligente y adaptativo del paralelismo en presencia de una carga de trabajo externa: Murali Krishna Emani, Zheng Wang y Michael O'Boyle. CGO 2013.
- Partición del paralelismo de transmisión para núcleos múltiples: un enfoque basado en el aprendizaje automático: Zheng Wang y Michael O'Boyle. PACTO 2010.
- Qilin: explotación del paralelismo en multiprocesadores heterogéneos con mapeo adaptativo: Chi-Keung Luk, Sunpyo Hong y Hyesoon Kim. MICRÓFONO 2009.
- Mapeo del paralelismo a múltiples núcleos: un enfoque basado en el aprendizaje automático - Zheng Wang y Michael O'Boyle. PPoPP 2009.
Optimización específica de dominio
- Vidente: Selección predictiva del kernel en tiempo de ejecución para problemas irregulares: Ryan Swann, Muhammad Osama, Karthik Sangaiah, Jalal Mahmud. CGO 2024
- Optimización del programa tensorial con 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: un enfoque de ajuste automático basado en compilador para operadores de precisión mixta: Zewei Mo, Zejia Lin, Xianwei Zhang, Yutong Lu. CF 2022
- Collage: Integración automatizada de backends de aprendizaje profundo: Byungsoo Jeon, Sunghyun Park, Peiyuan Liao, Sheng Xu, Tianqi Chen, Zhihao Jia. PACTO 2022
- Aprendizaje de invariantes de bucle no lineales con redes lógicas continuas cerradas: J. Yao, G. Ryan, J. Wong, S. Jana y R. Gu. PLDI 2020.
- Asignación de memoria basada en el aprendizaje para cargas de trabajo de servidores C++: Maas, Martin, David G. Andersen, Michael Isard, Mohammad Mahdi Javanmard, Kathryn S. McKinley y Colin Raffel. ASPLOS 2020. prenación
- Cerrando la brecha entre el aprendizaje profundo y la selección de formatos de matrices dispersas: Yue Zhao, Jiajia Li, Chunhua Liao y Xipeng Shen. PPoPP 2018.
- Camel: optimización de energía inteligente y adaptativa para interacciones web móviles: Jie Ren, Y. Lu, Petteri Nurmi, Xiaoming Wang, Miao Ma, Ling Gao, Zhanyong Tang, Jie Zheng y Zheng Wang. INFOCOM 2020.
- Optimización de la clasificación con algoritmos genéticos: Xiaoming Li, María Jesús Garzaran y David Padua. CGO 2005.
Idiomas y compilación
- (De/Re) -Composición de cálculos paralelos de datos mediante homomorfismos multidimensionales - Ari Rasch, TOPLAS 2024.
- Halide: un lenguaje y compilador para optimizar el paralelismo, la localidad y el recálculo en tuberías de procesamiento de imágenes - Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand y Saman Amarasinghe, PLDI 2013.
- PetaBricks: un lenguaje y compilador para elección algorítmica: Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman y Saman Amarasinghe. PLDI 2009.
- Lograr un alto rendimiento de forma funcional: una perla funcional para expresar optimizaciones de alto rendimiento como estrategias de reescritura: Bastian Hagedorn, Johannes Lenfers, Thomas K{oe}hler, Xueying Qin, Sergei Gorlatch y Michel Steuwer. Actas de la ACM sobre lenguajes de programación 2020.
Reducción del tamaño del código
- Aprendizaje de órdenes de paso del compilador mediante conjunto de núcleos y predicción de valores normalizados: 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: Ordenamiento de fases para optimizar el tamaño y el tiempo de ejecución mediante el aprendizaje por refuerzo - Shalini Jain, Yashas Andaluri, S. VenkataKeerthy, Ramakrishna Upadrasta. ISPASS 2022.
- Explorando el espacio de secuencias de optimización para la reducción del tamaño del código: conocimientos y herramientas - Anderson Faustino da Silva, Bernardo NB de Lima y Fernando Magno Quintao Pereira. CC 2021. Código y Datos
- Uso del aprendizaje automático para predecir el impacto del tamaño del código de las heurísticas de duplicación en un compilador dinámico: Raphael Mosaner, David Leopoldseder, Lukas Stadler y Hanspeter Mössenböck. MPLR 2021.
- ANGHABENCH: una suite con un millón de puntos de referencia C compilables para la reducción del tamaño del código - Anderson Faustino da Silva, Bruno Conde Kind, Jose Wesley de Souza Magalhaes, Jeronimo Nunes Rocha, Breno Campos Ferreira Guimaraes, Fernando Magno Quintao Pereira. CGO 2021. Código y Datos
- Debloating de software guiado por aprendizaje por refuerzo: Nham Le Van, Ashish Gehani, Arie Gurfinkel, Susmit Jha y Jorge A. Navas. MLSys 2019.
- Optimización para espacio de código reducido mediante algoritmos genéticos: Keith D. Cooper, Philip J. Schielke y Devika Subramanian. LCTES 1999.
Modelos de costo y rendimiento
- TLP: un modelo de costos basado en aprendizaje profundo para el ajuste de programas tensoriales: Yi Zhai, Yu Zhang, Shuo Liu, Xiaomeng Chu, Jie Peng, Jianmin Ji, Yanyong Zhang, ASPLOS, 2023.
- Performance-Detective: Deducción automática de modelos de rendimiento económicos y precisos: Larissa Schmid, Marcin Copik, Alexandru Calotoiu, Dominik Werle, Andreas Reiter, Michael Selzer, Anne Koziolek, Torsten Hoefler, ICS, 2022.
- Predicción del rendimiento basada en redes neuronales para la migración de tareas en S-NUCA Many-Cores: Martin Rapp, Anuj Pathania, Tulika Mitra, Jörg Henkel, IEEE Transactions on Computers, 2021.
- Un modelo de costos basado en aprendizaje profundo para la optimización automática de código: Riyadh Baghdadi, Massinissa Merouani, Mohamed-Hicham LEGHETTAS, Kamel Abdous, Taha Arbaoui, Karima BENATCHBA, Saman amarasinghe, MLSys 2021
- Análisis comparativo de la estructura del código utilizando el aprendizaje profundo para la predicción del rendimiento: Nathan Pinnow, Tarek Ramadan, Tanzima Z. Islam, Chase Phelps, Jayaraman J. Thiagarajan, ISPASS 2021
- Extracción de modelos de rendimiento limpio de programas contaminados: Marcin Copik, Alexandru Calotoiu, Tobias Grosser, Nicolas Wicki, Felix Wolf, Torsten Hoefler. PPoPP 2021.
- PMEvo: Inferencia portátil de asignaciones de puertos para procesadores fuera de servicio mediante optimización evolutiva - Fabian Ritter, Sebastian Hack. PLDI 2020.
- Un método de aprendizaje activo para el modelado empírico en el ajuste del rendimiento: Jiepeng Zhang, Jingwei Sun, Wenju Zhou, Guangzhong Sun. IPDPS 2020.
- Aprenda a optimizar los haluros con búsqueda de árboles y programas aleatorios: 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 trans ACM, 2019.
- Ithemal: Estimación del rendimiento de bloques básicos precisa, portátil y rápida utilizando redes neuronales profundas: Charith Mendis, Alex Renda, Saman Amarasinghe y Michael Carbin. ICML 2019.
- Absenta: aprendizaje de un modelo de rendimiento analítico para fusionar y colocar códigos de plantilla en mosaico de una sola vez: Tobias Gysi, Tobias Grosser y Torsten Hoefler. PACTO 2019.
- Predecir nuevas cargas de trabajo o rendimiento de la CPU mediante el análisis de conjuntos de datos públicos: Yu Wang, Victor Lee, Gu-Yeon Wei y David Brooks. Transacciones ACM sobre arquitectura y optimización de código (TACO), 2019.
- Creación automática de modelos de selección de tamaño de mosaico: Tomofumi Yuki, Lakshminarayanan Renganarayanan, Sanjay Rajopadhye, Charles Anderson, Alexandre E. Eichenberger y Kevin O'Brien. CGO 2010.
- Modelos empíricos sensibles a la microarquitectura para optimizaciones de compiladores: Kapil Vaswani, Matthew J. Thazhuthaveetil, YN Srikant y PJ Joseph. CGO 2007.
- Estimadores estáticos precisos para la optimización de programas: Tim A. Wagner, Vance Maverick, Susan L. Graham y Michael A. Harrison. PLDI 1994.
Representación del programa de aprendizaje
- Integraciones de rendimiento: un enfoque de ajuste de transferencia basado en similitudes para la optimización del rendimiento - L Trümper, T Ben-Nun, P Schaad, A Calotoiu, T Hoefler. ICS 2023.
- Mejora del análisis binario multiplataforma mediante el aprendizaje de representaciones mediante alineación de gráficos: Geunwoo Kim, Sanghyun Hong, Michael Franz, Dokyung Song. ISSTA 2022.
- Representaciones de programas para la compilación predictiva: situación a principios de los años 20 - Anderson Faustino da Silva, Edson Borin, Fernando Magno Quintao Pereira, Nilton Luiz Queiroz Junior y Otavio Oliveira Napoli. JCL 2022. Código y datos
- Análisis comparativo de la estructura del código mediante aprendizaje profundo para la predicción del rendimiento: DNathan Pinnow, Tarek Ramadan, Tanzima Z. Islam, Chase Phelps, Jayaraman J. Thiagarajan. ISPASS 2021.
- GraphCodeBERT: Representaciones de código previas al entrenamiento con flujo de datos: 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 , Dawn Drain, Neel Sundaresan, Jian Yin, Daxin Jiang, Ming Zhou. ICLR 2021.
- CodeBERT: un modelo previamente entrenado para programación y lenguajes naturales: 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: Integraciones de programas escalables basados en LLVM IR: S. VenkataKeerthy, Rohit Aggarwal, Shalini Jain, Maunendra Sankar Desarkar, Ramakrishna Upadrasta y YN Srikant. TACOS 2020.
- Modelado profundo de la estructura del programa mediante el aprendizaje basado en gráficos multirrelacional: Guixin Ye, Zhanyong Tang, Huanting Wang, Jianbin Fang, Songfang Huang y Zheng Wang. PACTO 2020.
- Modelos relacionales globales de código fuente: Vincent J. Hellendoorn, Charles Sutton, Rishabh Singh, Petros Maniatis, David Bieber, ICLR 2020. (Datos y código)
- Aprendizaje de incrustaciones de programas semánticos con red neuronal de intervalo gráfico: Yu Wang, Ke Wang, Fengjuan Gao y Linzhang Wang. OOPSLA 2020.
- Flow2Vec: incrustación de código preciso basado en flujo de valores: Yulei Sui, Xiao Cheng, Guanqin Zhang y Haoyu Wang. OOPSLA 2020.
- MISIM: un sistema de similitud de código neuronal de un extremo a otro: Fangke Ye, Shengtian Zhou, Anand Venkat, Ryan Marcus, Nesime Tatbul, Jesmin Jahan Tithi, Paul Petersen, Timothy Mattson, Tim Kraska, Pradeep Dubey, Vivek Sarkar y Justin Gottschlich. ArXiv 2020.
- Incorporaciones de programas semánticos precisos y combinados: Ke Wang y Zhendong Su. PLDI 2020.
- LambdaNet: inferencia de tipos probabilísticos utilizando redes neuronales gráficas: Jiayi Wei, Maruth Goyal, Greg Durrett e Isil Dillig. ICLR 2020.
- Representaciones gráficas basadas en compiladores para modelos de código de aprendizaje profundo: Alexander Brauckmann, Andrés Goens, Sebastian Ertel y Jeronimo Castrillon. CC 2020.
- Modelado de código generativo con gráficos: Marc Brockschmidt, Miltos Allamanis, Alexander L. Gaunt y Oleksandr Polozov. ICLR 2019.
- code2seq: Generación de secuencias a partir de representaciones estructuradas de código: Uri Alon, Shaked Brody, Omer Levy y Eran Yahav. ICLR 2019.
- code2vec: aprendizaje de representaciones distribuidas de código: Uri Alon, Meital Zilberstein, Omer Levy y Eran Yahav. POPL 2019.
- COSET: un punto de referencia para evaluar la incorporación de programas neuronales - Ke Wang, Mihai Christodorescu. ArXiv 2019.
- Aprender a representar programas con gráficos: Miltiadis Allamanis, Marc Brockschmidt y Mahmoud Khademi. ICLR 2018.
- Comprensión del código neuronal: una representación que se puede aprender de la semántica del código: Tal Ben-Nun, Alice Shoshana Jakobovits y Torsten Hoefler. NeuroIPS 2018.
- Aprendizaje profundo de extremo a extremo de heurísticas de optimización: Chris Cummins, Pavlos Petoumenos, Zheng Wang y Hugh Leather (diapositivas). PACTO 2017.
- Muestreo de programas con conciencia semántica: Pratiksha Thaker, Daniel Tarlow y Marc Brockschmidt. NeuroIPS 2017.
- DeepCoder: aprender a escribir programas: Matej Balog, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin y Daniel Tarlow. ICLR 2017.
- Redes neuronales convolucionales sobre estructuras de árbol para el procesamiento de lenguajes de programación: Lili Mou, Ge Li, Lu Zhang, Tao Wang y Zhi Jin. AAAI 2016.
- Una red de atención convolucional para un resumen extremo del código fuente: Miltos Allamanis, Hao Peng y Charles Sutton. ICML 2016.
- Modelos generativos estructurados de código fuente natural: Chris Maddison y Daniel Tarlow. ICML 2014.
- Uso de caracterización de programas basados en gráficos para modelos predictivos: Eunjung Park, John Cavazos y Marco A. Alvarez. CGO 2011.
- Generación automática de funciones para compilación de optimización basada en aprendizaje automático: Hugh Leather, Edwin Bonilla y Michael O'Boyle. CGO 2009.
- Un marco basado en juegos para comparar clasificadores y evasores de programas: Thais Damasio, Michael Canesche, Vinicius Pacheco, Anderson Faustino da Silva, Marcus Botacin y Fernando Magno Quintao Pereira. CGO 2023. Código y Datos
Habilitación del aprendizaje automático en compiladores y optimización de sistemas
- Mejora de la solidez del modelo predictivo en el tiempo de implementación para el análisis y la optimización del código - Huanting Wang, Patrick Lenihan, Zheng Wang. CGO 2025. (Código)
- El dialecto de transformación MLIR: su compilador es más poderoso de lo que cree: Martin Paul Lücke, Oleksandr Zinenko, William S. Moses, Michel Steuwer, Albert Cohen. Arxiv 2024.
- Compilador de modelos de lenguaje metagrande: modelos básicos de optimización del compilador: Chris Cummins, Volker Seeker, Dejan Grubisic, Baptiste Roziere, Jonas Gehring, Gabriel Synnaeve, Hugh Leather. Arxiv 2024.
- Las próximas 700 optimizaciones del 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: un generador de puntos de referencia activo y profundo: Foivos Tsimpourlas, Pavlos Petoumenos, Min Xu, Chris Cummins, Kim Hazelwood, Ajitha Rajan, Hugh Leather. PACTO 2022 (código)
- Automatización del diseño de arquitectura de aprendizaje por refuerzo para la optimización de código: Huanting Wang, Zhanyong Tang, Cheng Zhang, Jiaqi Zhao, Chris Cummins, Hugh Leather, Zheng Wang. CC 2022 (código)
- Aprendizaje de representaciones semánticas para verificar diseños de hardware: Shobha Vasudevan, Wenjie (Joe) Jiang, David Bieber, Rishabh Singh, hamid shojaei, C. Richard Ho, Charles Sutton. NeuroIPS 2021
- Generación de código modular y componible en MLIR: un enfoque estructurado y reorientable para la construcción de compiladores tensoriales - 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
- Coevolución profunda basada en PNL para sintetizar análisis de código a partir de lenguaje natural: Zifan Nan, Hui Guan, Xipeng Shen, Chunhua Liao. CC 2021
- MLGO: un marco de optimización del compilador guiado por aprendizaje automático: Mircea Trofin, Yundi Qian, Eugene Brevdo, Zinan Lin, Krzysztof Choromanski, David Li. arXiv. Código
- Hacia una mejor comprensión del autoajuste de caja negra: un análisis comparativo de sistemas de almacenamiento - Zhen Cao, Vasily Tarasov, Sachin Tiwari y Erez Zadok. ATC 2018.
- Sintetizando puntos de referencia para el modelado predictivo: Chris Cummins, Pavlos Petouenos, Zheng Wang y Hugh Leather (diapositivas). CGO 2017.
- Minimizando el costo de la compilación iterativa con el aprendizaje activo: William Ogilvie, Pavlos PetoUmenos, Zheng Wang y Hugh Leather. CGO 2017.
- Vespa: Perfil estático para la optimización binaria - Angélica aparecida Moreira, Guilherme Ottoni y Fernando Magno Quintao Pereira. OOPSLA 2021. Código y datos
- Mapeo de cálculos en sistemas heterogéneos de multicore con regresión estadística en las entradas del programa: Junio Cezar Ribeiro da Silva, Lorena Leao, Vinicius Petrucci, Abdoulaye Gamatie y Fernando Magno Quintao Pereira. TECS 2021.
Modelado/análisis de memoria/caché
- 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 Milán, Oriol Vinyals, Daniel J. Mankowitz. ARXIV 2023.
- Patrones de acceso a la memoria de aprendizaje: Milad Hashemi, Kevin Swersky, Jamie A. Smith, Grant Ayers, Heiner Litz, Jichuan Chang, Christos Kozyrakis, Parthasarathy Ranganathan. ICML 2018
- Predicción estática de tiendas silenciosas: Fernando Magno Quintao Pereira, Guilherme Vieira Leobas y Abdoulaye Gamatie. Taco 2019. Código y datos
Libros
- Ajuste automático de compiladores utilizando aprendizaje automático: Amir H. Ashouri, Gianluca Palermo, John Cavazos y Cristina Silvano. Springer 2018.
- Ajuste automático de software: desde conceptos hasta resultados de última generación-K Naono, K Teranishi, J Cavazos y R Suda. Springer 2010.
Charlas y tutoriales
- Saman Amarasinghe, Compilador 2.0: Uso del aprendizaje automático para modernizar la tecnología del compilador. LcTes 2020.
- Amir Ashouri, compilador automático utilizando el aprendizaje automático: una revisión de última generación (diapositivas). Universidad Politécnica de Milán 2018.
Software
- PROM: un conjunto de herramientas de Python para ayudar a identificar la predicción errónea del modelo ML después de la implementación (documento).
- ML-Compiler-Bridge: biblioteca para interfaz compiladores y modelos ML para optimizaciones de compiladores (papel) habilitados para ML.
- Supersonic - Automatice el diseño de la arquitectura de aprendizaje de refuerzo (papel).
- CompiLergyM - Entornos de aprendizaje de refuerzo para optimizaciones del compilador (documento).
- Codebert: modelos DNN previamente entrenados para lenguajes de programación (papel).
- IR2VEC - LLVM IR Based Program Incusiones para el aprendizaje automático (papel).
- ProgramL - LLVM y XLA Representación del programa IR para el aprendizaje automático (documento).
- Neurovectorizador: utilizando el aprendizaje de refuerzo profundo (RL) para predecir las pragmas del compilador de vectorización óptima (papel).
- TVM - Pila de compiladores de aprendizaje profundo abierto para CPU, GPU y aceleradores especializados (papel; diapositivas).
- CLGEN - Generador de referencia usando LSTMS (papel; diapositivas).
- COBAYN - Autotoning del compilador usando BNS (papel).
- OpenRuner-Marco para construir autotuners del programa multi-objetivos específicos del dominio (papel; diapositivas)
- ONNX -MLIR - Representación y disminución de la referencia de modelos ONNX en infraestructura del compilador MLIR (papel).
- IREE: un compilador de aprendizaje automático basado en MLIR y un kit de herramientas de tiempo de ejecución.
Puntos de referencia y conjuntos de datos
- Tenset: un conjunto de datos de rendimiento del programa a gran escala para compiladores de tensor aprendidos: un conjunto de datos de registros de rendimiento del programa tensor para seis plataformas de hardware (papel) comúnmente utilizadas.
- Las cargas de trabajo de Alberta para la suite de referencia SPEC CPU® 2017: cargas de trabajo adicionales para la suite de referencia SPEC CPU2017.
- Project Codenet: muestras de código escritas en más de 50 lenguajes de programación, anotados con información, como tamaño del código, huella de memoria, tiempo de ejecución de CPU y estado (tipos de aceptación/error)
- CodExGlue: un conjunto de datos de referencia de aprendizaje automático para la comprensión y generación del código (papel)
- Anghabench: una suite con un millón de puntos de referencia C compilables (papel)
- BHIVE: un marco de referencia y un marco de medición para validar los modelos de rendimiento básico de bloqueo X86-64 (papel).
- CBIGH - 32 C puntos de referencia con conjuntos de datos y scripts de controladores.
- PolyBench - 30 puntos de referencia de plantilla y álgebra lineal con conjuntos de datos y scripts de controladores. Ver también: Versión de GPU, conjuntos de datos precomputados (papel).
- DeepDataFlow-469K LLVM-IR y 8.6B Data Flow Analysiss Telemels para la clasificación (papel).
- DevMap - 650 características de referencia OpenCL y etiquetas de clasificación de CPU/GPU (papel; diapositivas).
Conferencias
- Conferencia ACM Sigplan sobre diseño e implementación de lenguaje de programación, PLDI
- Soporte arquitectónico para lenguajes de programación y sistemas operativos, ASPLOS
- Simposio ACM Sigplan sobre principios y práctica de la programación paralela, PPOPP
- Simposio internacional sobre generación y optimización de código, CGO
- Conferencia internacional sobre arquitecturas paralelas y técnicas de compilación, pacto
- Programación, sistemas, idiomas y aplicaciones orientados a objetos, OOPSLA
- Conferencia internacional sobre construcción de compiladores, CC
- Conferencia internacional sobre supercomputación, ICS
- Conferencia internacional sobre arquitecturas y compiladores de alto rendimiento y integrados, Hipeac
- Conferencia internacional sobre idiomas, compiladores y herramientas para sistemas integrados, LCTES
- Conferencia internacional sobre fronteras informáticas, CF
- Simposio internacional de procesamiento paralelo y distribuido, IPDPS
- Conferencia internacional para computación de alto rendimiento, redes, almacenamiento y análisis, SC
- Taller de lenguajes de aprendizaje automático y programación, MAPL
- Idiomas y compiladores para computación paralela, LCPC
- Conferencia internacional sobre representaciones de aprendizaje, ICLR
- Conferencia sobre aprendizaje automático y sistemas, MLSYS
Revistas
- Transacciones ACM sobre arquitectura y optimización de código, Taco
Cómo contribuir
Ver pautas de contribución. TL; DR: Envíe a uno de los mantenedores una solicitud de extracción.