We are looking for a Software Toolchain Engineer to join our engineering team. In this role, you will be developing, maintaining, and optimizing software development toolchains, including compilers, linkers, debuggers, build systems, and related infrastructure. In particular, the focus is on Software Development Kit (SDK) porting and retargeting pretrained neural network models on an AI inference engine.
You have:
- Bachelors or Masters degree in Computer Science, Computer Engineering, or related field.
- 5+ years of experience in software toolchain.
- Strong proficiency in C/C++, Python, PyTorch.
- Deep working knowledge of compiler internals and linking/loading processes. Experience in CUDA.
- Understanding of AI neural-network architectures, and formats such as ONNX. Neural-network optimizations such as model quantization, pruning.
- Understanding of systems-level topics like memory management, scheduling, and multi-core compute.
- Experience with version control systems like Git. At least one major compiler infrastructure (e.g., GCC).
It would be nice if you also had:
- Contributions to open-source compiler or toolchain projects.
- Experience in programming kernel functions. Familiarity with deployment to edge devices or cloud inference platforms.
- Knowledge of low-level programming, embedded systems, or hardware architectures (CPU/DSP/GPU).
- Design, develop, and maintain software development toolchain, including compilers, linkers, debuggers, static analysis tools, code generators, and build systems.
- Adopt and customize third-party and open-source tools and technologies to meet specific needs.
- Identify bottlenecks and areas for improvement within the existing toolchain.
- Optimize performance and output for specific hardware targets based on a hardware-accelerated multi-core RISC-V system.
- Collaborate with AI/ML experts, hardware and embedded software engineers.
- Develop SDK: native API, libraries, plugin to PyTorch and/or TensorFlow backend.
- Develop user environment from PyTorch to instruction simulator.