À propos du service
TraduitJe suis développeur GPU et je fais en sorte que des tâches numériques lourdes s'exécutent des ordres de grandeur plus rapidement en les déplaçant vers la carte graphique. Lorsqu'une simulation, un traitement de signal ou un pipeline ML maintient le CPU à pleine charge pendant des heures, je profile où le temps est réellement dépensé, restructure la section chaude pour des milliers de threads parallèles et la réécris en tant que noyaux CUDA qui chargent tous les multiprocesseurs de flux sans temps d'inactivité. Je me soucie non seulement de la justesse mais aussi du débit : comment les données circulent à travers la mémoire globale, partagée et des registres, à quel point les warps sont cohérents et quelle fraction de la bande passante théorique le noyau utilise réellement sur le matériel en direct.
La plupart des projets commencent avec un code CPU existant qui a simplement dépassé son temps d'exécution. Je porte cette logique vers le GPU étape par étape, vérifiant les résultats par rapport à l'original à chaque étape afin que les chiffres ne dérivent pas, puis j'augmente l'occupation, l'accès à la mémoire coalescée et le chevauchement des threads jusqu'à ce que l'accélération devienne réelle et mesurable. Je travaille couramment avec le CUDA Toolkit et les bibliothèques associées — cuBLAS, cuFFT, Thrust — et m'appuie sur Nsight et des profileurs pour prouver exactement où se trouve le goulet d'étranglement, sans deviner. Que ce soit pour le HPC scientifique, le traitement de signal ou l'entraînement et l'inférence ML, je livre des noyaux documentés, reproductibles et prêts à être intégrés dans votre build.
Si le code est lent et que vous atteignez le mur du processeur, décrivez la tâche et où ça fait mal — je vous dirai honnêtement combien de gains le GPU peut apporter et comment j'y parviendrai.
— Développement et optimisation de noyaux CUDA
— Portage d'algorithmes du CPU vers le GPU
— Réglage de la mémoire et de la bande passante (globale, partagée, registres)
— Intégration de cuBLAS, cuFFT, Thrust
— Profilage Nsight et analyse des goulets d'étranglement
— Concurrence multi-GPU et threads
— Accélération HPC et accélération de l'entraînement/inférence ML
La plupart des projets commencent avec un code CPU existant qui a simplement dépassé son temps d'exécution. Je porte cette logique vers le GPU étape par étape, vérifiant les résultats par rapport à l'original à chaque étape afin que les chiffres ne dérivent pas, puis j'augmente l'occupation, l'accès à la mémoire coalescée et le chevauchement des threads jusqu'à ce que l'accélération devienne réelle et mesurable. Je travaille couramment avec le CUDA Toolkit et les bibliothèques associées — cuBLAS, cuFFT, Thrust — et m'appuie sur Nsight et des profileurs pour prouver exactement où se trouve le goulet d'étranglement, sans deviner. Que ce soit pour le HPC scientifique, le traitement de signal ou l'entraînement et l'inférence ML, je livre des noyaux documentés, reproductibles et prêts à être intégrés dans votre build.
Si le code est lent et que vous atteignez le mur du processeur, décrivez la tâche et où ça fait mal — je vous dirai honnêtement combien de gains le GPU peut apporter et comment j'y parviendrai.
— Développement et optimisation de noyaux CUDA
— Portage d'algorithmes du CPU vers le GPU
— Réglage de la mémoire et de la bande passante (globale, partagée, registres)
— Intégration de cuBLAS, cuFFT, Thrust
— Profilage Nsight et analyse des goulets d'étranglement
— Concurrence multi-GPU et threads
— Accélération HPC et accélération de l'entraînement/inférence ML