We are working on software to improve the Deep Learning ecosystem and help hardware engineers build great Deep Learning parallel systems.
We are looking for a strong candidate with a background in writing systems software and working with GPU performance tools and tracing frameworks such as Perfetto.This role involves designing and implementing features for the Perfetto framework to enable Rivos internal and external users to more easily measure the performance of their code. This role may also go much lower into the libraries that enable performance data collection.
You will be learning technical and organizational skills from industry veterans: how to write performant and readable code; how to structure and communicate projects, ideas, and progress; how to work effectively with the Open Source community.
We are big proponents of Open Source and Free software and contribute back our improvements to all the great projects we use.
Responsibilities
Develop and modify the Open Source Perfetto framework to enable software developers to improve performance of their code.
Work on underlying libraries and drivers to enable performance data collection.
Ensure performance monitoring overhead is minimized
Build tooling to facilitate measuring performance in different scenarios (on simulators, FPGAs, or real hardware)
Write unit tests and benchmark tools to validate the performance and correctness of your changes.
Stay current with advancements in the field.
Requirements
Experience with Perfetto profiling framework
Ability to write code in C or C++
Experience with Protobuf
Understanding of computer architecture
Strong problem-solving skills and ability to work in a fast-paced, collaborative environment.
Excellent skills in problem solving, written and verbal communication
Strong organization skills, and highly self-motivated.
Ability to work well in a team and be productive under aggressive schedules.
Optional Requirements
Experience with profiling and optimizing low-level performance (memory bandwidth, latency, throughput) on GPU architectures.
Familiarity with deep learning frameworks (TensorFlow, PyTorch, etc.).
Ability to write code in Rust
Coursework or experience with Machine Learning algorithms
Education and Experience
Bachelor’s, Master’s, or PhD in Computer Engineering, Software Engineering or Computer Science