A Model for Software Measurement Aiming to Guide Evaluations and Comparisons between Programming Tools to Implement GPU Applications - Di Domenico, Daniel (2022)
Ferramentas de programação para GPUs são frameworks que possuem recursos para explorar o paralelismo massivo oferecido por tais dispositivos. Atualmente, estes dispositivos estão sendo amplamente empregados na Computação de Alto Desempenho. Apesar de existirem diversas ferramentas que podem ser utilizadas para codificar uma aplicação para GPU, o processo de programação requerido para esta finalidade ainda é visto como desafiador, demandando o uso de frameworks específicos para lidar com ambiente heterogêneo existente na arquitetura de GPU. Além disso, não há um framework amplamente aceito como o padrão para explorar GPUs. Neste sentido, a escolha de uma ferramenta para implementar um programa para GPUs não é simples, visto que tal decisão pode impactar o desempenho e o esforço de programação necessário para desenvolvê-lo. Diante disto, esta Tese propõe um modelo para conduzir avaliações e comparações entre frameworks para GPUs. Este modelo foi formulado baseando-se na metodologia GQM para métrica de software e, devido a isto, utiliza Goals (Objetivos), Questions (Questões) e Metrics (Métricas) para analisar três aspectos referente aos frameworks: expressividade de programação, esforço de programação e desempenho. Como resultado, o modelo visa oferecer uma perspectiva considerando as características, pontos fortes e pontos fracos das ferramentas de programação. Nossa ideia é que tal perspectiva seja capaz de auxiliar na escolha de um framework a fim de desenvolver um programa para GPU. Experimentos conduzidos a partir do modelo GQM proposto foram realizados aplicando o conjunto de benchmarks do “NAS Parallel Benchmarks” implementados com CUDA, OpenACC e Python/Numba. Os resultados experimentais contemplaram os três aspectos definidos no modelo, mostrando as semelhanças e diferenças das APIs utilizadas. Ademais, os resultados foram empregados para construir a perspectiva sobre cada framework. Desta forma, nós acreditamos que este estudo contribui para aprimorar o conhecimento disponível sobre tais ferramentas, bem como no avanço das pesquisas relacionadas a ferramentas de programação para GPUs.