We are building the future of computing on Arm. We need to predict and optimise performance with new and forthcoming architectural features for both todays, and tomorrow's novel applications. This means we need great connections between our teams developing our architecture, micro-architectures, and software to ensure we maximise their potential.
As a Software Performance Engineer you will help to develop the use, and realise the benefits, of newly developed architecture features across workloads relevant to Arm's customers. You will provide guidance for efficient microarchitecture implementations by building a working set of workload-proven representative use-cases of the new features. Exploring functional and performance characteristics of those new features in microarchitecture implementations, you will work in partnership with internal engineering teams to help drive software roadmaps for both the compilers and libraries teams. These roadmaps will be aligned with our core designs to ensure they are ready for the Arm software ecosystem on day-zero - as soon as silicon becomes available.
Arm is an outstanding company to work for! We strive to provide an open and accepting environment where you are encouraged to share your ideas and opinions, which enables collective innovation and creativity, and supports your growth as an engineer. Arm supports hybrid working and, among the many benefits that Arm offers, employees have 25 days of annual leave with an option to buy more holiday days as well as progressive parental leave.
Responsibilities:
Your role will require you to:
- Find opportunities for improving the performance and scalability of current and future workloads either, by prototyping them with newly developed architectural feature; or through efficient code generation
- Estimate workloads performance using models of cores and memory
- Provide guidance by engaging with compilers, libraries and CPU engineering teams in proactive detection, mitigation and resolution of ineffective uses of architectural features
- Add to benchmarking infrastructure with idiomatic uses of novel features
Required Skills and Experience:
- B.Sc. or higher in Computer Engineering or Computer Science; or other relevant recent experience
- Strong lower-level programming skills such as writing assembly (for any architecture), C or C++ along with excellent problem solving and debugging abilities
- Fast learner of new technologies
- A real passion to make a positive impact, in our team and beyond
- Comfortable coping with uncertainty and resolving ambiguity by using verbal, written and interpersonal communication skills
'Nice to Have' Skills & Experience:
The following is a selection of skills used across our projects.
You do not need to have experience with any of these to apply or succeed in your application:
- Experience with Arm processors, CPU architecture and SoC subsystems
- Highly knowledgable about low-level code optimisation and an understanding of the interplay between compilers, software performance and hardware
- Understanding of internal compiler behaviours and representations and knowledge of compiler optimisation and code generation techniques
- Experience estimating, modelling, and evaluating performance and efficiency of targeted workloads, preferably in a full-system simulator.
- Ability to quickly understand the key use cases and application frameworks for edge computing and the datacentre
Note: Training may be provided if you have only a subset of these key skills.
We are an Equal Opportunity Employer and do not discriminate against any employee or applicant for employment because of race, colour, sex, age, national origin, religion, sexual orientation, gender identity, status as a veteran, and basis of disability or any other protected characteristic.
We will ensure that individuals with disabilities are provided reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request accommodation.
#LI-JB1