logo

View all jobs

Staff Software Engineer - Kernel

Remote, Canada or US · Computer/Software
We are looking for best in class engineers to join our existing top-notch team.  When you join us, you will be part of a team that designs, develops and verifies the software that interacts with our chip, collaborating with our hardware engineers and with fellow software engineers in the process. By creating software that fully realizes the capabilities of the hardware, you will help get AI inference to the general populace.

As part of this exceptional team, you are able to - and get excited by - identifying functional/performance bottlenecks and how to alleviate them in order to achieve scalable and reliable software.  You excel in an environment with complex software and hardware designs.

We are looking for an experienced Senior Kernel Engineer who can help build and optimize our SDK. Our tools and libraries unlock industry-leading performance and power efficiency on our unique at-memory AI inference chips.  We enable customers to compile models directly to run on our architectures, and provide tools to analyze and optimize performance.

The kernel library is at the heart of our SDK, leveraging HW features for fast computations, dividing work flexibly amongst parallel computation elements, as well as providing highly configurable data-flow options for all of our kernels.

The successful candidate will build a deep understanding of the capabilities and limitations of the architecture, and of how features of the kernel library enable performant push-button compilations.

Responsibilities

    • Efficient and flexible implementation of neural network compute kernels for our chip families
    • Defining / Improving abstractions of our kernel library to accelerate kernel development
    • Analysis and optimization of individual kernel performance and full-network implementation performance
    • Work closely with our compiler and physical allocation teams to enable efficient implementations of networks through our push-button compile tool-flow

Requirements

    • Computer Science, Engineering, Math, Physics or related degree
    • Experienced in Python, C/C++ and SW design
    • Demonstrated ability to work independently through challenging but tightly constrained problems
    • Demonstrated ability to be a technical leader on projects with teammates or engineers from other teams
    • Interest and ability to work with both high level architectural and very low-level technical details
    • Experience with low-level and/or parallelization optimization, e.g. assembly language development, GPU shaders, SIMD, CUDA, AI inference accelerator kernels

Preferred Skills

    • Experience with spatial architectures / at-memory compute
    • Knowledge of AI algorithms
    • Strong mathematical skills
    • Enjoy solving very complex problems (like doing IQ tests, solving tricky math problems)

Share This Job

Powered by