Predição de Desempenho de Aplicações CUDA utilizando Aprendizado de Máquina e Características de Pré-Execução
Resumo
Com a evolução das unidades de processamento gráfico (GPU), as aplicações de computação paralela estão se tornando cada vez mais complexas. Prever o desempenho dessas aplicações ajuda desenvolvedores a otimizar seus algoritmos e a escalonadores na distribuição de seus trabalhos. Neste trabalho, foi realizado uma predição do desempenho de aplicações CUDA usando aprendizado de máquina e características de pré-execução. Foram usados dados de execuções de 9 aplicações CUDA sobre 8 GPUs. Utilizou-se dois técnicas de aprendizado de máquina RandomForest e Decision Tree, mostrou-se que os modelos criados apresentaram uma média ente 1,41% e 2,14% de erro de predição no tempo de execução, respectivamente.
Referências
Amaris, M., de Camargo, R. Y., Dyab, M., Goldman, A., and Trystram, D. (2016). A comparison of gpu execution time prediction using machine learning and analytical modeling. In 2016 IEEE 15th International Symposium on Network Computing and Applications (NCA), pages 326–333. IEEE.
Hayashi, A., Ishizaki, K., Koblents, G., and Sarkar, V. (2015). Machine-learning-based performance heuristics for runtime cpu/gpu selection. In Proceedings of the principles and practices of programming on the Java platform.
NVIDIA, C. C. and CUDA, C. (2015). Programming guide, version 7.
Susto, G. A., Schirru, A., Pampuri, S., McLoone, S., and Beghi, A. (2014). Machine learning for predictive maintenance: A multiple classifier approach. IEEE Transactions on Industrial Informatics, 11(3):812–820.