À propos du projet
NVIDIA CUDA Samples est un dépôt officiel de programmes d'exemple qui démontrent les fonctionnalités et capacités du CUDA Toolkit. Ces exemples servent de matériel pédagogique et de référence pour les développeurs travaillant avec les GPU NVIDIA, couvrant un large éventail de sujets, des concepts CUDA de base aux techniques avancées de programmation GPU.
Le dépôt est organisé en deux sections principales : les exemples C++ et les exemples Python. Les exemples C++ sont répartis en dix groupes : Introduction (concepts CUDA de base et API d'exécution), Utilitaires (requêtes de capacités de périphérique et mesures de bande passante), Concepts et techniques (approches courantes de résolution de problèmes), Fonctionnalités CUDA (Cooperative Groups, Dynamic Parallelism, CUDA Graphs), Bibliothèques CUDA (NPP, NVJPEG, cuBLAS, cuFFT, cuSPARSE, cuSOLVER, cuRAND), Domaines spécifiques (graphiques, finance, traitement d'images), Performance (techniques d'optimisation), libNVVM (utilisation de l'IR NVVM), Spécifique à la plateforme (Tegra, cuDLA, NvMedia, NvSci, OpenGL ES) et CUDA Tile (C++ CUDA Tile).
Les exemples Python utilisent CUDA Python avec cuda.core pour les périphériques, les programmes, les lancements et la gestion de la mémoire, ainsi que l'interopérabilité avec NumPy, CuPy ou des frameworks. Ils sont organisés en sections : Démarrage, Concepts de base, Interopérabilité de frameworks (PyTorch et TensorFlow), Calcul distribué et Utilitaires.
Le système de compilation utilise CMake et prend en charge Linux, Windows, la compilation croisée Tegra, QNX et les plateformes QNX Safety. Les exemples peuvent être compilés pour toutes les architectures GPU prises en charge ou ciblés vers des architectures spécifiques. Le dépôt inclut un script d'exécution de tests (run_tests.py) qui peut exécuter tous les exemples comme vérification de cohérence, avec des arguments configurables, une exécution parallèle et des options de saut pour les exemples nécessitant des affichages graphiques.
Certains exemples ont des dépendances tierces, notamment FreeImage, MPI, DirectX et DirectX 12. Le système d'installation organise les exemples compilés dans une structure de répertoires basée sur l'architecture cible, le système d'exploitation et le type de compilation. Les exemples ne sont pas destinés à servir de suite de validation pour CUDA, mais plutôt de démonstrations pratiques des modèles et techniques de programmation GPU.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.