@techreport{TR-IC-PFG-26-32,
   number = {IC-PFG-26-32},
   author = {Guilherme Resende Braga and Hervé Cédric Yviquel},
   title  =  {{Exploração do Modelo de Programação CUDA Tile para GPUs
                   NVIDIA}},
   month = {July},
   year = {2026},
   institution = {Institute of Computing, University of Campinas},
   note = {In Portuguese, 37 pages.
    \par\selectlanguage{brazil}\textbf{Resumo}
       A  busca  por  maior  produtividade  na programação de GPUs tem
       motivado  o  surgimento  de  modelos  que  elevam  o  nível  de 
       abstração  sem  sacrificar desempenho. Nesse contexto, a NVIDIA
       introduziu  o  CUDA  Tile,  que adota o {\em tile} como unidade
       lógica  de  execução,  comunicação  e  sincronização entre {\em
       threads},  encapsulando  padrões de cooperação tradicionalmente
       expressos  de  forma  manual  em  CUDA. Este trabalho investiga
       empiricamente  esse modelo, comparando-o com o CUDA tradicional
       e  com  o  Triton,  um compilador JIT com {\em auto-tuning} que
       parte  do mesmo diagnóstico, mas adota filosofia distinta. \par
       São  descritos  os  três  modelos,  a metodologia de comparação
       (princípio   de  equidade,  protocolo  de  medição,  tratamento 
       estatístico   e   o   modelo  {\em  Roofline}  como  ferramenta 
       unificadora) e a infraestrutura experimental desenvolvida ({\em
       bench  harness}). A comparação é conduzida sobre quatro padrões
       de  {\em  kernels}  que  cobrem  o  espectro do {\em Roofline}:
       redução  paralela,  multiplicação  de  matrizes com {\em Tensor
       Cores},  {\em  stencil}  2D  e  atenção  fundida. Os resultados
       mostram  que  o valor da abstração depende do padrão: há empate
       no  padrão  limitado  por  memória  sem reúso, ganho expressivo
       sobre  o  esforço  manual  idiomático nos padrões limitados por
       computação  e por fusão de {\em kernels}, e perda de desempenho
       no   {\em  stencil},  em  que  o  controle  manual  da  memória 
       compartilhada explora melhor o reúso de vizinhança. Em todos os
       casos,  as  abstrações  reduzem  o  código  e  a  sincronização 
       explícita.
  }
}
