Kernel Engineer

GTA or Montreal
Software
Full-time
We are looking for an experienced Kernel Engineer. The objective of the role is to build efficient implementations of real-world neural nets kernels specialized for our unique architecture, including implementation of other algorithms like beam search, and designing layers to maximize layer-to-layer and IO throughput. The successful candidate will build a deep understanding of the capabilities, limitations and details of our architecture and work closely with our architects and compiler engineers. 

Responsibilities

    • Design and prototype low-level implementation strategies for various neural net operations
    • Communicate optimization ideas both to compiler engineers and to architects working on future product generations
    • Design multi-chip neural net inference strategies

Requirements

    • Computer Science, Engineering, Math, Physics or related degree, preferably MS or PhD
    • Demonstrated ability to work independently through challenging but tightly constrained problems
    • Interest and ability to work with both high level conceptual and very low-level technical details
    • Interest in problem-solving within highly structured and tightly constrained environments

Nice to have

    • Python experience
    • Assembly language development experience
    • CUDA or other low-level GPU or AI accelerator programming experience
    • Knowledge of AI algorithms
    • Strong mathematical skills
    • Enjoy solving very complex problem (like doing IQ tests, solving tricky math problems)