Junior Performance Software Engineer
Posted 14 hours 10 minutes ago by Jobtailor
Permanent
Full Time
I.T. & Communications Jobs
Limerick, Ireland
Job Description
Responsibilities 
- Make independent technical contributions to help the team deliver its commitments.
- Optimize AI, HPC, and other workloads and benchmarks for our RISC V silicon with vector extensions.
- Identify bottlenecks via workload characterization and drive implementation of solutions.
- Decompose applications and understand how they run on the underlying hardware.
- Understand performance at a system level, from CPU, memory, storage, and power utilization.
- Profile and optimize on pre silicon environments (simulators, emulators, FPGAs) and on silicon.
- Troubleshoot and conduct root cause analysis to resolve performance issues.
- Optimize HPC and AI libraries and runtimes.
- Work with customers to optimize their critical workloads for our architecture.
- Contribute to instrumentation of performance and power at the operating system level.
- Integrate with CI/CD to automate performance benchmarking.
- Present findings to senior technical leaders and at industry conferences.
- Contribute upstream where appropriate.
- Interact with colleagues across projects to unblock issues or reach consensus on technical topics.
- Collaborate with hardware teams, influencing hardware/software co design.
- Collaborate with teams developing compilers, firmware, AI stacks, middleware, and contribute as necessary.
- Collaborate through code reviews, bug triaging, design documents, and other shared responsibilities such as CI failure triaging, documentation, and code fixes.
- Bachelor's or Master's degree in a relevant field.
- 1-3 years of experience in the relevant field.
- Solid knowledge of computer architecture (CPU, cache, memory hierarchy, buses, etc.).
- Proven experience with performance optimization and profiling/analysis tools (Linux perf, iperf, lmbench, sysbench, flamegraphs, JMeter, LoadRunner, Gatling, Intel VTUNE, ARM SPE, etc.).
- Solid knowledge of low level development languages (C, C++, Rust, etc.).
- Experience with assembly language on any architecture.
- Experience with performance benchmarks (CoreMark, FPMark, LMBench, Stream, SPEC CPU, SPEC INT, graph500, CORAL, HPGMG, CoMD, Linpack, SuiteSparse Matrix Collection, MLPERF, ResNet, BERT, etc.).
- Solid understanding of operating systems, databases, networking, and cloud technologies.
- Strong problem solving skills with the ability to troubleshoot and identify complex issues.
- Experience with bare metal development for embedded systems and microcontrollers.
- Experience with standard tools for source control (git), continuous integration, and task management (Jira).
- Experience with machine learning and/or HPC performance optimization.
- Experience with Fortran.
- Experience with RISC V development at the assembly language level.
- Experience with statistical analysis.
- Experience with emulators and simulators (Qemu, Gem5, Spike).
- Experience in containerized environments (Docker, Kubernetes).
- Experience with hypervisor technology (KVM, Xen).
- Experience with open source software development.
- C
- C++
- Rust
- Assembly Language
- Performance Benchmarking
- Bare Metal Development
- Statistical Analysis
- Machine Learning Optimization
- RISC V Development
- Emulators and Simulators
- Problem Solving
- Collaboration
- Communication