Junior Performance Software Engineer
OPENCHIP & SOFTWARE TECHNOLOGIES
Limerick, County Limerick, Ireland · Full Time
Be the first to apply
- Experience
- 1–3 yrs
- Salary
- —
- Openings
- 1
- Posted
- 5 hours ago
- Work mode
- In office
- Education
- Bachelor or Master’s degree
- Resume
- Required to apply
Where you'll work
Job description
About the Role
Openchip is engaged in developing innovative RISC-V processors featuring AI and high-performance computing (HPC) acceleration capabilities. As a Junior Performance Software Engineer, you will be an active member of the performance optimization team, focused on enhancing the efficiency of popular AI and HPC applications and benchmarks to achieve top-tier performance. You will also collaborate closely with clients to fine-tune their workloads for our architecture.
Key Responsibilities
- Independently contribute technically to assist the team in achieving its goals.
- Enhance the performance of AI, HPC, and other workload benchmarks on RISC-V processors equipped with vector extensions.
- Analyze workloads to identify performance bottlenecks and implement corrective measures.
- Break down how applications operate on the underlying hardware platform.
- Gain a comprehensive understanding of system-level performance aspects including CPU, memory, storage, and power consumption.
- Conduct profiling and optimization on pre-silicon platforms such as simulators, emulators, FPGAs, as well as on actual silicon hardware.
- Perform root cause analysis to troubleshoot and resolve performance issues.
- Optimize HPC and AI libraries and runtime environments.
- Partner with customers to tailor their key workloads to our hardware architecture.
- Contribute to developing instrumentation for monitoring performance and power usage at the operating system layer.
- Automate performance benchmarking through continuous integration/continuous deployment (CI/CD) pipelines.
- Present optimization findings to senior technical management and at industry conferences.
- Contribute code and improvements upstream when appropriate.
- Collaborate across different project teams to resolve technical challenges and reach consensus on solutions.
- Engage with hardware teams to influence hardware/software co-design decisions.
- Work alongside compiler, firmware, AI stack, and middleware development teams to provide necessary input or contributions.
- Participate in team-wide activities such as code reviews, bug triages, documentation, and rotating responsibilities like CI failure management.
Qualifications and Experience
- Bachelor’s or Master’s degree in a relevant discipline.
- 1 to 3 years of experience in pertinent technical fields.
- Thorough understanding of computer architecture components including CPU, caches, memory hierarchies, and buses.
- Demonstrated skills in performance optimization, including use of advanced profiling and analysis tools such as Linux perf, Intel VTUNE, ARM SPE, and others.
- Proficiency in low-level programming languages including C, C++, and Rust.
- Familiarity with assembly language programming on any platform.
- Hands-on experience with established performance benchmarks including CoreMark, FPMark, SPEC CPU, MLPERF, and others.
- Strong knowledge of operating systems, database systems, networking, and cloud technologies.
- Excellent problem-solving aptitude to diagnose and address complex issues.
- Experience with bare metal development for embedded systems and microcontrollers without reliance on operating systems.
- Experience with version control systems like Git, continuous integration tools, and task management platforms such as Jira.
- Background in optimizing performance for machine learning and HPC environments.
- Fortran programming experience.
- Assembly-level development expertise on RISC-V architecture.
- Competency in statistical performance analysis.
- Experience working with emulators and simulators such as QEMU, Gem5, and Spike.
- Familiarity with containerization tools like Docker and Kubernetes.
- Knowledge of hypervisor technologies such as KVM and Xen.
- Prior involvement in open source software development.
Soft Skills
- Collaborative team member with strong communication skills who prioritizes team outcomes.
- Eager learner motivated by exploring new technologies and frameworks.
- Able to work effectively within and across teams on technical challenges.
- Proactive, self-driven, and determined to overcome obstacles with a positive, can-do mentality.
Additional Information
Openchip & Software Technologies S.L. offers competitive remuneration and a flexible working arrangement to maintain a healthy work-life balance. The company values diversity and inclusivity, fostering a workplace where all are respected and empowered regardless of race, gender, ethnicity, sexual orientation, or gender identity. This role is based in Limerick, Ireland, and requires onsite presence.