"""
Version: 1.0.0 (2023-12-23)
Auteur: Kahina et franck - Groupe 2
Contact: bigmoletos@yopmail.com
Script de test de la configuration CUDA pour le GPU.
Ce module vérifie la disponibilité et le bon fonctionnement de CUDA
pour les calculs GPU. Il teste:
- La configuration de l'environnement CUDA
- Les opérations de base sur GPU
- Les performances de calcul matriciel
Architecture:
------------
1. Vérification environnement:
- Variables d'environnement CUDA
- Chemins des bibliothèques
- Version du runtime
2. Tests fonctionnels:
- Opérations basiques
- Calculs matriciels
- Synchronisation GPU
3. Validation performance:
- Multiplication de matrices
- Utilisation mémoire
- Temps d'exécution
Utilisation:
-----------
python test_cuda.py
Prérequis:
---------
- CUDA Toolkit installé
- CuPy
- Pilotes NVIDIA à jour
"""
import cupy as cp
import numpy as np
import os
[docs]
def test_cuda():
"""
Teste la configuration et les performances CUDA.
Cette fonction:
1. Vérifie l'environnement CUDA
2. Teste les opérations GPU basiques
3. Évalue les performances
Processus:
---------
1. Vérification:
- Variables d'environnement
- Version CUDA
- Nombre de GPUs
2. Tests:
- Opérations simples (carré)
- Multiplication de matrices
- Synchronisation GPU
3. Performance:
- Matrices 1000x1000
- Multiplication
- Synchronisation
Returns:
-------
bool
True si tous les tests passent
False en cas d'erreur
Notes:
-----
- Affiche les informations de debug
- Teste la multiplication de matrices
- Vérifie la synchronisation
"""
try:
# Afficher les informations sur l'environnement
print("Environment variables:")
print(f"CUDA_PATH: {os.environ.get('CUDA_PATH', 'Not set')}")
print(
f"LD_LIBRARY_PATH: {os.environ.get('LD_LIBRARY_PATH', 'Not set')}")
# Test simple CUDA operation
x_gpu = cp.array([1, 2, 3, 4, 5])
y_gpu = cp.square(x_gpu)
# Afficher les informations CUDA
print("\nCUDA Information:")
print(f"CUDA version: {cp.cuda.runtime.runtimeGetVersion()}")
print(f"CuPy version: {cp.__version__}")
print(f"Number of GPU devices: {cp.cuda.runtime.getDeviceCount()}")
# Tester la performance
print("\nPerformance test:")
a = cp.random.rand(1000, 1000)
b = cp.random.rand(1000, 1000)
c = cp.matmul(a, b)
cp.cuda.Stream.null.synchronize()
print("CUDA Test successful! Matrix multiplication completed.")
return True
except Exception as e:
print(f"\nCUDA Test failed: {str(e)}")
return False
if __name__ == "__main__":
test_cuda()