Analyse benchmarks and workloads to identify software and hardware optimization opportunities, analyse CPU performance and understand limitations we need to break through.
Collaborate with various software teams, compiler, OS, applications to implement improvements.
Collaborate with CPU design teams to identify bottlenecks.
Write/Extract performance tests out of existing SW applications and run it on C/C++ models, emulators or real devices (Laptops, Smartphones, Servers…) on various operating systems.
Work alongside with modelling engineers, CPU design teams and Arm Architecture group.
Drive technical activities.
Collaborate with Business teams and partners to present technical results.
Required Skills and Experience :
You graduated from a university or Engineering School, in Computer Science, Mathematics, Electronic / Electrical Engineering, or other related science
You have bare minimum of several years of either software, hardware, or mathematic experience.
You have some a proven experience in SW programming alongside with technical management
You have a passion to innovate, think different, explore new avenues.
You can work efficiently alone as well as in a team environment.
“Nice To Have” Skills and Experience :
Having strong SW development experience in one or several domains like HPC, machine learning, distributed applications, web technologies, mobile applications, databases, multi-media, …
Having strong development skills in one or more high-level programming languages (C, C++, Java, Rust, …)
Have SW performance analysis experience in platforms like Android (big/LITTLE systems), Windows, Linux and operating System settings impact (power management, frequency governor…) , single-threaded vs multi-threaded…
Having working experience in CPU performance analysis, methodology (PMU-based, TDA, …), tools (linux perf, Intel Vtune, android simpleperf/perfetto, …), aarch64 assembly language programming
Having knowledge on CPU architecture and micro-architecture performance techniques (branch prediction, prefetchers, …)
You are used to develop and adapt some experimental application code to test new architectures.
You demonstrate passion, drive and diligence.
You have good written and verbal communication skills