Compiler Performance Analyst
(US,India, UK &Taiwan) Mountain View CA , Austin TX, Portland OR, or Fort Collins CO, Bangalore India, HsinChu Taiwan, Cambridge UK /
Engineering – Software Engineering /
Full-time
/ Hybrid
We are working on software to improve the RISC-V ecosystem and help hardware engineers build great RISC-V based systems.
Enabling performance optimization via compiler optimization or library improvements first requires identifying small actionable opportunities for improvement. We are building a world-class team to ensure the RISC-V software ecosystem is mature performance wise.
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
- Identifying actionable performance opportunities in compiler generated code or core libraries. May involve workload analysis or methodical exploration of likely areas; after all, performance bugs cluster too.
- Producing targeted microbenchmarks for handoff to compiler or library engineers, and once a change is made, verifying that the microbenchmark was representative for the original inspiration.
- Tracking multiple inflight opportunities, and providing feedback on relative priority and expected impact.
- Collaborating closely with compiler engineers, architecture experts, and others teams across the company to drive performance improvements.
Requirements
- C or C++ experience required
- Experience with tools such as e.g. perf, VTune, or llvm-mca.
- Knowledge of hardware microarchitecture sufficient for performance modeling discussions. (If you’ve read Agner Fog’s guides, or something similar, this is plenty.)
- Knowledge of compiler internals is a plus; actionable results require some knowledge of what’s achievable. Interest and skill in making changes to compilers and libraries is not required, but is a plus.
- Excellent skills in problem solving, written and verbal communication, excellent organization skills, and highly self-motivated.
- Ability to work well in a team and be productive under aggressive schedules.
- We are explicitly looking for both junior and senior candidates for this role.
Education and Experience
PhD, Master’s Degree or Bachelor’s Degree in technical subject area.