Software Engineer - Compiler Development
Software Development Engineer - Compiler for Deep-Learning Accelerator
Description of Role:
This position involves developing a custom compiler for Tensorflow Lite models to the custom hardware platform; the engineer will develop suitable "hardware" interpretations of the Tensorflow Lite model descriptions, similar to existing ONNX interface, to the custom hardware; Ideal candidate will have experience working on compiler front-end and back-end technologies and adapting fast to the existing codebase. The engineer will work independently and in teams reporting to hiring manager, and demonstrate ownership, attention to quality and deliverable schedule.
The ideal candidate would have experience across
Preferable to have M.S. or Ph.D. in CS/EE/Math etc. or equivalent experience
- Deep knowledge of python, tensorflow
- GDB, PDB, Valgrind
- Test case automation, TDD
- C++11/Gnu C /LLVM compiler experience
- Ubuntu / Centos
- Building and working with Shared libraries
Tensorflow/Deep Learning Skillset
- Experience programming under the hood of Tensorflow
- Experience with multiple versions a plus
- Understanding of internal TF architecture
- Implemented an operator from scratch
- Understanding of XLA
- Installed and built tensorflow from scratch
- Experience with MachineLearning techniques MLP, CNN, FC-DNN, Pooling, etc.
- Tensorflow, TensorflowLite, etc.
- Experience with inference and training of standard models
- Demonstrated knowledge with coursework like CS 20SI: Tensorflow for Deep Learning Research, Coursera Machine Learning, etc.
- Demonstrated ML/AI project experience
- Experience in opensource contributions (GitHub, bitbucket, source-forge etc.)
- GDB, Python debugger (PDB)
- Standard Python libraries
- Experience using numpy, scipy, tensorflow, ONNX
- Building and packaging Python libraries
- Python unittest, nose package familiarity
- Using clang, clang++; programming in c++11
- Experience building LLVM passes, IRgeneration
- Building compiler frontends, back-ends, code-generators
- Experience building with clang passes
- Excellent Data structures and Algorithms skillset
- Able to describe a lowlevel software routine and how it fits in the bigger picture
- Experience with GPU, FPGA, or custom ASIC accelerators
- Experience programming CUDA
- RISCV / other embedded CPU experience
- DSP programming
- Small RAM systems
- Embedded debugging / Strong debugging skills
- RTOS / micro kernels
- Experience working with large projects with high number of source files written by others
- Writing clean well documented and commented code
- Development efficiency. Agile. TDD.
- Multithreaded programming
- Mutex /locks pthreads/etc.
- Security as it pertains to APIs and code
- Experience exposing C functions as a python callable API
- Good verbal and written communication skills.
- Team player.