Roku
Thunder Compute
Ingeniero/a de Software (Sistemas C++)
Sobre la empresa
El mundo está construyendo una cantidad masiva de capacidad de GPU. Mientras tanto, las GPU desplegadas solo se utilizan en un 20%.
Esto se debe a que las GPU no están virtualizadas, mientras que todo 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 estáticamente uno a uno.
Thunder Compute está construyendo esta capa de virtualización para GPU. Hemos recaudado más de 17.5 millones de dólares de Matrix Partners, Y Combinator y ángeles inversores líderes de Coreweave, Microsoft, Cognition y Anthropic.
Las soluciones líderes para la subutilización se encuentran 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úster debe ser invisible para los desarrolladores y compatible con todas las cargas de trabajo; por lo tanto, debe residir en la capa de sistemas.
Somos un equipo de investigadores de sistemas que producen investigación de vanguardia en 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 en el espacio de usuario, cargada a través de LD_PRELOAD, para interceptar llamadas 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 así como "Ceph para GPU": las GPU se convierten en recursos de red que pueden abstraerse, agruparse y asignarse dinámicamente en un clúster para mejorar la utilización sin requerir que los desarrolladores modifiquen sus cargas de trabajo.
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 una 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 GPU.
Rol
Tu trabajo se centrará en la construcción de los sistemas C++ centrales detrás de nuestra capa de virtualización. Esto incluye optimización de rendimiento de baja latencia, depuración de sistemas distribuidos, fiabilidad en producción e investigación de nuevas técnicas para mejorar la utilización de GPU.
Asumirás la propiedad de sistemas complejos desde la experimentación temprana hasta el despliegue en producción.
Los proyectos de ejemplo pueden incluir:
- Análisis y reducción de 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 runtime en espacio de usuario, la red y servidores GPU remotos.
- Mejora del soporte para bifurcación de procesos, señales, multihilo, enlace dinámico y comportamiento inusual de aplicaciones.
- Diseño de sistemas para asignación, planificación, recuperación de fallos y observabilidad de GPU.
- Investigación y producción de nuevas técnicas de virtualización y sobresuscripción de GPU.
- Expansión de la compatibilidad en aplicaciones, frameworks y arquitecturas de GPU CUDA.
Pasarás tus días alternando entre los detalles de sistemas complejos y críticos para el rendimiento que están en producción. Una semana, podrías estar rastreando un error de sincronización en una carga de trabajo CUDA distribuida; la siguiente, podrías estar rediseñando una ruta de datos activa 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 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 Clave
- Habilidad excepcional en C++ moderno, incluyendo gestión de memoria, concurrencia, optimización de rendimiento y diseño de abstracciones a nivel de sistema.
- Comprensión profunda de sistemas operativos, redes de bajo nivel, compiladores, sistemas distribuidos o arquitectura de computadoras.
- Experiencia en la construcción y operación de sistemas C++ críticos para el rendimiento en producción.
- Sólida habilidad en programación y depuración de sistemas Linux.
- Capacidad para razonar a través de sistemas desconocidos en múltiples capas de la pila.
Requisitos Indispensables
- Sólida ética de trabajo y capacidad para llevar un proyecto de forma independiente 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, exhaustivamente probado, sin supervisión significativa.
- Fuerte sentido de la propiedad sobre la corrección, fiabilidad, rendimiento y resultados operativos.
- Capacidad para depurar problemas ambiguos sin una reproducción clara, un playbook existente o un propietario obvio.
- Disposición para trabajar directamente con clientes e investigar fallos de producción difíciles.
Preferible
- Experiencia con CUDA, sistemas de GPU, compiladores, intercepción de runtime, enlace dinámico, redes de alto rendimiento o computación distribuida.
- Experiencia en una empresa de trading como Citadel Securities o Jane Street; una empresa de infraestructura de hardware o IA como NVIDIA o SambaNova; un grupo de investigación de sistemas; o un entorno de ingeniería similarmente 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 en llevar nueva investigación de sistemas desde un paper o prototipo a un sistema de producción fiable.
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 visas.
Beneficios
- Salario competitivo y acciones significativas.
- Almuerzo diario, snacks y café.
- Cenas y eventos de equipo.
- 401(k)
- Seguro médico, dental y de visión.
