At Tenstorrent, we are developing silicon, software, and systems to address the rapidly growing demands of AI and machine learning workloads. We have taped out three generations of chips and continuously developing new ones.
Our chips are parallel dataflow processors with hundreds of AI-specialized engines, a high-throughput interconnect among the engines, and controllers of high-speed off-chip memory and communication peripherals. Each engine consists of a variable-precision math unit and multiple RISC-V cores.
Our SDK, consisting of a graph compiler, a runtime environment, runtime firmware for the engines, software that generates the runtime firmware, and supporting tools, provides a familiar environment to machine learning developers while hiding complexities of scheduling and low-level execution.
Our systems range from single-chip boards for inference to multi-rack computers with hundreds of chips for training.
We are growing our team and looking for firmware and software engineers of all seniorities.
In this role you will develop runtime firmware and software for the AI/ML processor
- Design and implement data processing operations in C language, as runtime firmware for the AI-specialized engines. The operations are building blocks for scheduling whole neural networks on our chips and systems.
- Design functionalities of moving data among the AI-specialized engines, in collaboration with graph compiler and digital design engineers.
- Implement the data movement operations as C++ software that generates runtime firmware code for the AI-specialized engines, their RISC-V cores and interconnect units.
- Optimize designs and implementations for maximal performance and minimal power consumption of executing modern neural networks on our chips and systems.
- Test and ensure functional correctness and high-performance of data processing and data movements, from a single operation to a whole neural network.
- Occasionally implement and test software models and simulators.
- Perform other duties assigned from time to time.
- Degree or final year of education in Computer Science, Computer Engineering, Software Engineering, Electronics, or a related field.
- Passion for firmware and software development and performance optimizations.
- Solid foundation in algorithms and data structures.
- Experience and proficiency in one or more programming languages, such as: C, C++, and Python.
- Experience with any of these is a great-to-have: dataflow architectures, scalar and vector processor architectures, GPU architectures and programming models, digital signal processing systems, memory subsystem architectures, real time hardware and firmware systems.
- Deep interest in modern neural networks, deep learning architectures, and AI/ML SDKs is a plus.
Ready to apply? Have more questions? Send us your resume or questions via the form below.