MANTECH
Thunder Compute
Ingeniero de Software (Sistemas C++)
Empresa
El mundo está construyendo cantidades masivas de capacidad de GPU. Mientras tanto, las GPU desplegadas solo se utilizan al 20%.
Esto se debe a que las GPU no están virtualizadas, mientras que cualquier otro tipo de hardware sí lo está. Por ejemplo, las CPU y el almacenamiento se asignan a través de abstracciones virtuales que gestionan eficientemente el hardware físico, mientras que las GPU se asignan de forma estática sobre una base de uno a uno.
Thunder Compute está construyendo esta capa de virtualización para GPU. Hemos recaudado más de $17.5M de Matrix Partners, Y Combinator y destacados inversores ángeles de Coreweave, Microsoft, Cognition y Anthropic.
Las soluciones líderes para la infrautilización se sitúan en la capa de carga de trabajo y, por lo tanto, solo pueden optimizar casos de uso específicos. Creemos que la solución ideal de optimización de clústeres debe ser invisible para los desarrolladores y compatible con todas las cargas de trabajo; por lo tanto, debe situarse en la capa de sistemas.
Somos un equipo de investigadores de sistemas que estamos llevando a producción investigaciones de vanguardia sobre virtualización de GPU para construir esta capa de optimización de propósito general.
Concretamente, nuestra biblioteca de virtualización abstrae las GPU a través de redes TCP. Utilizamos una biblioteca shim de espacio de usuario, cargada mediante LD_PRELOAD, para interceptar las llamadas a CUDA y enviarlas a través de gRPC a un servidor host conectado a una GPU física en otro lugar del centro de datos.
Esto permite algo parecido a "Ceph para GPU": las GPU se convierten en recursos de red que pueden abstraerse, agruparse y asignarse dinámicamente a través de un clúster para mejorar la utilización sin requerir que los desarrolladores modifiquen sus cargas de trabajo.
El puesto
Tu trabajo se centrará en construir los sistemas centrales de C++ detrás de nuestra capa de virtualización. Esto incluye la optimización del rendimiento de baja latencia, la depuración de sistemas distribuidos, la fiabilidad en producción y la investigación de nuevas técnicas para mejorar la utilización de las GPU.
Te harás cargo de sistemas complejos desde la experimentación inicial hasta el despliegue en producción. Algunos ejemplos de proyectos pueden incluir:
- Perfilado y reducción de la latencia en operaciones remotas de CUDA
- Construcción de rutas de red y transferencia de datos de alto rendimiento
- Depuración de fallos en procesos de clientes, nuestro tiempo de ejecución en espacio de usuario, la red y servidores GPU remotos
- Mejora del soporte para bifurcación de procesos (forking), señales, multihilo, enlace dinámico y comportamiento inusual de las aplicaciones
- Diseño de sistemas para la asignación, programación, recuperación de fallos y observabilidad de GPU
- Investigación y puesta en producción de nuevas técnicas de virtualización y sobresuscripción de GPU
- Ampliación de la compatibilidad entre aplicaciones, marcos de trabajo y arquitecturas de GPU de CUDA
Pasarás tus días alternando entre los detalles técnicos de sistemas complejos y críticos para el rendimiento que están activos en producción. Una semana, podrías estar rastreando un error de sincronización en una carga de trabajo distribuida de CUDA; a la siguiente, podrías estar rediseñando una ruta de datos crítica para eliminar microsegundos de sobrecarga.
Este trabajo no es fácil. Combina las partes más difíciles de la investigación de sistemas y la ingeniería de producción.
Requisitos mínimos
Buscamos un talento excepcional en ingeniería de bajo nivel, una sólida ética de trabajo y una atención extrema al detalle. Debemos movernos rápido mientras entregamos código de sistemas fiable y de alta calidad.
Habilidades técnicas principales
- Capacidad excepcional en C++ moderno, incluyendo gestión de memoria, concurrencia, optimización del rendimiento y diseño de abstracción a nivel de sistema
- Profundo conocimiento de sistemas operativos, redes de bajo nivel, compiladores, sistemas distribuidos o arquitectura de computadores
- Experiencia en la construcción y operación de sistemas de C++ críticos para el rendimiento en producción
- Sólida capacidad de programación y depuración de sistemas en Linux
- Capacidad para razonar sobre sistemas desconocidos a través de múltiples capas de la pila tecnológica
Requisitos imprescindibles
- Sólida ética de trabajo y capacidad para impulsar de forma independiente un proyecto desde un prototipo experimental hasta su finalización al 100% bajo plazos ajustados
- Atención al detalle y capacidad para entregar código listo para producción y probado exhaustivamente sin una supervisión significativa
- Fuerte sentido de propiedad sobre la corrección, fiabilidad, rendimiento y resultados operativos
- Capacidad para depurar problemas ambiguos sin una reproducción clara, un manual existente o un propietario obvio
- Disposición para trabajar directamente con los clientes e investigar fallos difíciles en producción
Preferible
- Experiencia con CUDA, sistemas de GPU, compiladores, interceptación en tiempo de ejecución, enlace dinámico, redes de alto rendimiento o computación distribuida
- Experiencia en una firma de trading como Citadel Securities o Jane Street; una empresa de hardware o infraestructura de IA como NVIDIA o SambaNova; un grupo de investigación de sistemas; o un entorno de ingeniería igualmente exigente
- Sólidos fundamentos de informática demostrados a través de trabajo académico, investigación de sistemas, programación competitiva, contribuciones de código abierto o experiencia profesional excepcional
- Experiencia llevando nuevas investigaciones de sistemas desde un artículo o prototipo a un sistema de producción fiable
Por qué unirse
Te unirás lo suficientemente pronto como para dar forma significativa a la arquitectura, los estándares de ingeniería y la dirección técnica de la empresa.
Trabajarás directamente con los fundadores en un problema de sistemas que define la categoría, con un camino corto entre escribir código y verlo ejecutarse en producción. Los sistemas que construyas formarán la base de una nueva capa de infraestructura para la computación con GPU.
Logística
Reportarás al cofundador y CTO Brian Model, anteriormente desarrollador cuantitativo en Citadel Securities
Este puesto es a tiempo completo y presencial, cinco días a la semana, en nuestra oficina en el centro de San Francisco
Se ofrece apoyo para la reubicación y patrocinio de visado
Beneficios
- Salario base de $250K - $325K, bono anual de hasta $500K y capital (equity) de 0.2% - 0.4%
- Almuerzo, snacks y café diarios
- Cenas y eventos de equipo
- 401(k)
- Seguro médico, dental y de visión
