À propos du poste
Anyone AI recrute des ingénieurs expérimentés en noyaux GPU pour un projet spécialisé axé sur la revue, le débogage et l'évaluation de noyaux de calcul haute performance utilisés dans les charges de travail d'IA.
Nous recherchons des ingénieurs ayant une expérience pratique de l'écriture et de l'optimisation de noyaux dans des frameworks tels que CUDA, Triton, NKI ou Pallas, avec une solide compréhension de l'exactitude numérique, de la performance GPU, de l'optimisation mémoire et du benchmarking.
Ce sur quoi vous travaillerez
Vous travaillerez sur des tâches liées aux noyaux GPU et accélérateurs, notamment :
- Implémentation et débogage de noyaux
- Optimisation CUDA et Triton
- Traduction entre frameworks de noyaux
- Migration matérielle
- Fusion d'opérateurs
- Profilage et benchmarking de performance
- Vérification de l'exactitude numérique
- Débogage de compilation et d'exécution
- Optimisation de la hiérarchie mémoire
- Performance des charges de travail d'IA au niveau des noyaux
Vous évaluerez si les implémentations sont techniquement correctes, conçues efficacement, reproductibles et correctement optimisées pour le matériel cible.
Ce que nous recherchons
- 3+ ans d'expérience pratique dans le développement, l'optimisation ou le débogage de noyaux GPU ou d'accélérateurs
- Solide expérience avec au moins deux des éléments suivants :
- CUDA
- Triton
- NKI / AWS Neuron
- Pallas / JAX
- Solide compréhension de l'optimisation de la performance GPU
- Expérience avec des outils de profilage de noyaux tels que Nsight, NCU, l'analyse roofline ou les profileurs natifs des frameworks
- Compréhension de :
- Bande passante mémoire
- Débit de calcul
- Occupation GPU
- Mémoire partagée
- Pression sur les registres
- Fusion des accès mémoire (memory coalescing)
- Conflits de bancs mémoire
- Solide compréhension de l'exactitude numérique en virgule flottante et des seuils de tolérance
- Expérience du débogage des problèmes de compilation et d'exécution des noyaux
- Capacité à distinguer les défauts logiciels, les problèmes d'environnement et les véritables défis d'optimisation
Expérience pertinente
Les candidats doivent avoir de l'expérience dans plusieurs des types de travail suivants :
- Écrire des noyaux à partir de spécifications techniques
- Traduire des noyaux entre CUDA, Triton ou d'autres frameworks
- Migrer des noyaux entre plateformes matérielles
- Déboguer des implémentations de noyaux incorrectes
- Optimiser la performance des noyaux
- Fusionner plusieurs opérations en noyaux optimisés
Atouts appréciés
- Expérience à la fois sur les écosystèmes de GPU NVIDIA et d'accélérateurs personnalisés
- Expérience avec AWS Trainium, TPU, JAX ou d'autres accélérateurs
- Expérience en ingénierie de compilateurs
- Familiarité avec MLIR, XLA ou l'abaissement de représentations intermédiaires
- Contributions à des bibliothèques de noyaux GPU ou ML
- Expérience avec cuBLAS, cuDNN, les noyaux de la communauté Triton ou les appels personnalisés JAX/XLA
- Expérience en évaluation de modèles d'IA, RLHF ou développement de benchmarks techniques
Vos responsabilités
- Examiner les implémentations de noyaux GPU et d'accélérateurs pour en vérifier l'exactitude
- Comparer les sorties aux implémentations de référence
- Évaluer les seuils de tolérance numérique
- Examiner les benchmarks de noyaux et déterminer si les comparaisons sont équitables
- Identifier les goulets d'étranglement de performance et les opportunités d'optimisation
- Évaluer si les objectifs de performance sont réalistes compte tenu des limites matérielles
- Examiner les traductions de noyaux et les migrations matérielles
- Identifier les problèmes de compilation, de pilote, de mémoire, de forme et d'exécution
- Déterminer si les tâches techniques sont réellement difficiles ou mal configurées
- Fournir des retours techniques clairs et exploitables
Engagement
Type de travail : À distance Engagement : Conseil à temps partiel, basé sur des projets Focus : Noyaux GPU, ingénierie de performance, débogage et évaluation technique
Ce rôle est idéal pour les ingénieurs qui aiment travailler au plus près du matériel, optimiser des charges de travail GPU, déboguer des problèmes de performance de bas niveau et pousser les systèmes de calcul d'IA vers leurs limites de performance.