Principal Software Engineer (Kernels)
Posted Updated
- The role requires you to be part of the team that helps productize the SW stack for our AI compute engine
- As part of the software team, you will be responsible for the development, enhancement, and maintenance of software kernels for next-generation AI hardware
- You have had past experience working across all aspects of the full-stack toolchain and understand the nuances of what it takes to optimize and trade off various aspects of hardware-software co-design
- You will work with a team of compiler experts to build out the compiler infrastructure, working closely with other software (ML, systems) and hardware (mixed signal, DSP, CPU) experts in the company
Benefits
- Equity
- Health care
- Flexible time-off
- Paid paternity leave
- 401k retirement plan
- Remote & hybrid working model
- Work with world-leading engineers and researchers
- On-site fitness center
- Free food and snacks
- Peer coaching & development
- Happy hours
- Team-building activities
- You possess experience building software kernels for HW architectures
- You possess a very strong understanding of various hardware architectures and how to map algorithms to the architecture
- You understand how to map computational graphs generated by AI frameworks to the underlying architecture
- Self-motivated team player with a strong sense of ownership and leadership
- Experience implementing algorithms in high-level languages such as C/C++ and Python
- Proficient in C/C++ and Python development in Linux environments and using standard development tools
- MS in computer engineering, math, physics, or a related degree with 10+ years of industry experience or a PhD in computer engineering, math, physics, or a related degree with 5+ years of industry experience
- Experience in implementing operators commonly used in ML workloads—GEMMs, Convolutions, BLAS, SIMD operators for operations like softmax, layer normalization, pooling, etc
- Experience with development for embedded SIMD vector processors such as Tensilica
- Experience implementing algorithms for specialized hardware such as FPGAs, DSPs, GPUs, and AI accelerators using libraries such as CUDA, etc
- Strong grasp of computer architecture, data structures, system software, and machine learning fundamentals
- Prior startup, small team, or incubation experience
- Experience with ML frameworks such as TensorFlow and/orPyTorch
- Experience working with ML compilers and algorithms, such as MLIR, LLVM, TVM, Glow, etc
- Work experience at a cloud provider or AI compute/subsystem company
- Experience with a deep learning framework (such as PyTorch or TensorFlow) and ML models for CV, NLP, or recommendation
