Publicado em 27 de março de 2026, um texto de Mark Harris no NVIDIA Technical Blog aborda como sobrepor transferências de dados à computação em CUDA C/C++. A ideia é manter CPU e GPU ocupadas com etapas distintas, em vez de deixá-las ociosas enquanto uma operação aguarda a outra.
Comece identificando as transferências e os cálculos de cada etapa do seu programa. Procure blocos de trabalho que possam ocorrer ao mesmo tempo sem depender do resultado de outra etapa.
Organize o fluxo para iniciar uma transferência e, enquanto ela ocorre, executar trabalho independente. Em CUDA, operações assíncronas e streams podem ajudar a expressar esse tipo de execução; respeite as dependências antes de usar dados transferidos.
Meça o programa antes e depois da mudança, observando o tempo total e a utilização dos recursos. A sobreposição pode melhorar o aproveitamento da CPU e da GPU, mas o ganho depende do padrão de trabalho e deve ser verificado na aplicação real.
Se usar uma IA para estudar ou adaptar o material, evite enviar código interno, credenciais ou dados de clientes. Compartilhe apenas trechos minimizados e autorizados, pois exemplos de desempenho não substituem testes no seu ambiente.