Staff Kernel Optimization Engineer
Develop and optimize high-performance ML and HPC kernels in low-level assembly and CSL for Cerebras' custom AI hardware architecture. Requires strong C++/Python skills and hardware architecture knowledge.
About the job
Responsibilities
- Develop design specifications for new machine learning and linear algebra kernels and mapping to the Cerebras WSE System using various parallel programming algorithms.
- Develop and debug kernel library of highly optimized low level assembly instruction and C-like domain specific language routines to implement algorithms targeting the Cerebras hardware system.
- Develop and debug high-performance kernel routines in low-level assembly and a custom C-like (CSL) language, implementing algorithms optimized for the Cerebras hardware system.
- Use mathematical models and analysis to measure the software performance and inform design decisions.
- Develop and integrate unit and system testing methodologies to verify correct functionality and performance of kernel libraries.
- Study emerging trends in Machine Learning applications and help evolve Kernel library architecture to address computational challenges of the start-of-the-art Neural Networks.
- Interact with chip and system architects to optimize instruction sets, microarchitecture, and IO of next generation systems.
Requirements
- Bachelor’s, Master’s, PhD or foreign equivalents in Computer Science, Computer Engineering, Mathematics, or related fields.
- Understanding of hardware architecture concepts — must be comfortable learning the details of a new hardware architecture.
- Skilled in C++ and Python programming languages.
- Good knowledge of library and/or API development best practices.
- Strong debugging skills and knowledge of debugging complex software stack.
Preferred Qualifications
- Experience in kernel development and/or testing.
- Familiarity with parallel algorithms and distributed memory systems.
- Experience in programming accelerators such as GPUs and FPGAs.
- Familiarity with Machine Learning neural networks and frameworks such as TensorFlow and PyTorch.
- Familiarity with HPC kernels and their optimization.
Skills
C++, Python, Kernel Development, Parallel Algorithms, Distributed Memory Systems, Gpu Programming, Fpga Programming, TensorFlow, PyTorch, Hpc Kernels, Low-Level Assembly, Debugging
Similar jobs
Embedded Engineering jobsSenior autonomy engineer designing, testing, and integrating autonomous capabilities for uncrewed aircraft. The role requires strong modern C++ experience, substantial robotics or aerospace systems experience, and leadership of junior engineers.
Leads the architecture and delivery of high-performance, distributed simulation systems for uncrewed aircraft mission autonomy. The role requires extensive software and systems integration experience, modern C++, Python, containerisation, Linux, and technical leadership.
Staff Autonomy Engineer designing, integrating, and validating autonomous behaviors for uncrewed aircraft. The role requires strong modern C++ experience, professional robotics or aerospace systems experience, and expertise in areas such as perception, sensor fusion, planning, or controls.
Develop embedded firmware and software architectures for UAV avionics, integrating RTOS platforms, sensors, autonomy systems, and hardware-in-the-loop testing. The role requires staff-level embedded development expertise in C/C++, bare-metal systems, Linux or RTOS bring-up, and a STEM degree.
Leads the technical direction, integration, validation, and fielding of autonomy software across multiple unmanned-platform programs. The role requires 10+ years of related experience, strong C++ and Linux embedded-systems expertise, field-test experience, and the ability to lead cross-program initiatives.