Amplify Energy Services LLC
Thunder Compute
Le monde construit une capacité GPU massive. Pourtant, les GPU déployés ne sont utilisés qu'à 20%.
Cela s'explique par le fait que les GPU ne sont pas virtualisés, contrairement à tous les autres types de matériel. Par exemple, les CPU et le stockage sont alloués via des abstractions virtuelles qui gèrent efficacement le matériel physique, tandis que les GPU sont alloués de manière statique sur une base un-pour-un.
Thunder Compute construit cette couche de virtualisation pour les GPU. Nous avons levé plus de 17.5 millions de dollars auprès de Matrix Partners, Y Combinator et d'investisseurs providentiels de premier plan issus de Coreweave, Microsoft, Cognition et Anthropic.
Les solutions actuelles pour remédier à la sous-utilisation se situent au niveau de la couche de charge de travail et ne peuvent donc optimiser que des cas d'utilisation spécifiques. Nous pensons que la solution idéale d'optimisation de cluster doit être invisible pour les développeurs et compatible avec toutes les charges de travail ; elle doit donc se situer au niveau de la couche système.
Nous sommes une équipe de chercheurs en systèmes qui industrialise la recherche de pointe en virtualisation GPU pour construire cette couche d'optimisation polyvalente.
Concrètement, notre bibliothèque de virtualisation abstrait les GPU via le réseau TCP. Nous utilisons une bibliothèque shim en espace utilisateur, chargée via LD_PRELOAD, pour intercepter les appels CUDA et les envoyer via gRPC vers un serveur hôte connecté à un GPU physique situé ailleurs dans le centre de données.
Cela permet de créer quelque chose comme un « Ceph pour GPU » : les GPU deviennent des ressources réseau qui peuvent être abstraites, mutualisées et allouées dynamiquement à travers un cluster pour améliorer l'utilisation sans obliger les développeurs à modifier leurs charges de travail.
Votre travail se concentrera sur la construction des systèmes C++ fondamentaux derrière notre couche de virtualisation. Cela inclut l'optimisation des performances à faible latence, le débogage de systèmes distribués, la fiabilité en production et la recherche de nouvelles techniques pour améliorer l'utilisation des GPU.
Vous prendrez en charge des systèmes complexes, de l'expérimentation initiale jusqu'au déploiement en production. Voici des exemples de projets :
Vous passerez vos journées à jongler avec les subtilités de systèmes complexes et critiques en termes de performance, actuellement en production. Une semaine, vous pourriez tracer un bug de synchronisation dans une charge de travail CUDA distribuée ; la suivante, vous pourriez reconcevoir un chemin de données critique pour éliminer des microsecondes de latence.
Ce travail n'est pas facile. Il combine les aspects les plus ardus de la recherche en systèmes et de l'ingénierie de production.
Nous recherchons un talent exceptionnel en ingénierie bas niveau, une solide éthique de travail et une attention extrême aux détails. Nous devons avancer rapidement tout en livrant un code système fiable et de haute qualité.
Vous nous rejoindrez assez tôt pour façonner de manière significative l'architecture, les normes d'ingénierie et l'orientation technique de l'entreprise.
Vous travaillerez directement avec les fondateurs sur un problème système qui définit une catégorie, avec un chemin court entre l'écriture du code et sa mise en production. Les systèmes que vous construirez formeront la base d'une nouvelle couche d'infrastructure pour le calcul GPU.
Vous serez sous la responsabilité du co-fondateur et CTO Brian Model, ancien développeur quantitatif chez Citadel Securities
Ce poste est à temps plein et en présentiel, cinq jours par semaine, dans nos bureaux du centre-ville de San Francisco
Une aide à la relocalisation et un parrainage de visa sont disponibles
Plateforme de recrutement inversé pour développeurs