Overview
Skills
Job Details
Job Description
Senior Neural Network Kernel Software Development Engineer
Our client is making substantial investments in software to enhance the seamless deployment of neural networks on their hardware, streamlining the experience for researchers and developers. The focus involves the optimization of various common neural networks for optimal performance on architectures, facilitated by the software optimization tool flow.
We are seeking software developers who are driven and naturally curious. The chosen candidate will contribute within agile teams, working closely with senior software engineers for mentorship. This role presents an opportunity to tackle novel challenges using cutting-edge technologies, as they build innovative systems from scratch.
As a key team member, you will specialize in constructing efficient implementations of practical neural net kernels tailored to their distinctive hardware architecture. Additionally, you will implement diverse computing algorithms, maximizing computation and communication throughput. This role involves developing a profound understanding of the architecture's intricacies, working collaboratively with the architects and compiler engineers.
Responsibilities:
- Experience writing kernels to accelerate Neural Network execution on custom hardware accelerators (not on CPU's)
- Design, prototype, and execute low-level, adaptable C++ programs (kernels) for various neural net operations.
- Define, document, and communicate configuration APIs for these kernels to the compiler team.
- Share performance optimization concepts with both compiler engineers and architects working on future product generations.
- Develop comprehensive computation strategies spanning kernels for multichannel and multi-chip neural net implementations.
Requirements:
- Degree in Computer Science, Engineering, Math, Physics, or related field (preferably MS or PhD).
- Profound knowledge of modern C++, with a focus on code generation and low-level compute optimizations.
- Familiarity with fundamental Neural Network operator algorithms - Convolutions, Transformers, RNNs.
- Demonstrated capability to independently navigate challenging, well-defined problems.
- Aptitude and interest in both high-level conceptual understanding and intricate technical details.
- Enthusiasm for problem-solving within highly structured and restricted environments.
Preferred Skills and Experience:
- Proficiency in Python.
- Experience with other AI accelerator programming.
- Strong mathematical aptitude.
- Enjoyment of solving complex problems.
Our client offers:
- Comprehensive health and extended health benefits.
- Competitive Salary
- Unlimited sick leave.
- Stock options.
- Contribution to revolutionizing chip and software technologies with global impact.