Sobre o projeto
NVIDIA CUDA Samples é um repositório oficial de programas de exemplo que demonstram os recursos e capacidades do CUDA Toolkit. As amostras servem como material educacional e de referência para desenvolvedores que trabalham com GPUs NVIDIA, cobrindo uma ampla gama de tópicos, desde conceitos básicos de CUDA até técnicas avançadas de programação GPU.
O repositório é organizado em duas seções principais: amostras em C++ e amostras em Python. As amostras em C++ são categorizadas em dez grupos: Introdução (conceitos básicos de CUDA e APIs de runtime), Utilitários (consultas de capacidade de dispositivo e medições de largura de banda), Conceitos e Técnicas (abordagens comuns de resolução de problemas), Recursos CUDA (Cooperative Groups, Dynamic Parallelism, CUDA Graphs), Bibliotecas CUDA (NPP, NVJPEG, cuBLAS, cuFFT, cuSPARSE, cuSOLVER, cuRAND), Específicas de Domínio (Gráficos, Finanças, Processamento de Imagem), Desempenho (técnicas de otimização), libNVVM (uso de IR NVVM), Específicas de Plataforma (Tegra, cuDLA, NvMedia, NvSci, OpenGL ES) e CUDA Tile (CUDA Tile C++).
As amostras em Python usam CUDA Python com cuda.core para dispositivos, programas, lançamentos e gerenciamento de memória, juntamente com NumPy, CuPy ou interoperabilidade com frameworks. Elas são organizadas em Introdução, Conceitos Centrais, Interoperabilidade com Frameworks (PyTorch e TensorFlow), Computação Distribuída e Utilitários.
O sistema de build usa CMake e suporta Linux, Windows, compilação cruzada para Tegra, QNX e plataformas QNX Safety. As amostras podem ser compiladas para todas as arquiteturas GPU suportadas ou direcionadas a arquiteturas específicas. O repositório inclui um script de execução de testes (run_tests.py) que pode executar todas as amostras como uma verificação de sanidade, com argumentos configuráveis, execução paralela e opções de pular amostras que exigem exibições gráficas.
Algumas amostras têm dependências de terceiros, incluindo FreeImage, MPI, DirectX e DirectX 12. O sistema de instalação organiza as amostras compiladas em um layout de diretório estruturado com base na arquitetura alvo, sistema operacional e tipo de build. As amostras não são destinadas como uma suíte de validação para CUDA, mas servem como demonstrações práticas de padrões e técnicas de programação GPU.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.