Machine Learning Performance Analysis Engineer
What you will do
System Architecture innovations are key to position imec for success in the fast-evolving workloads of tomorrow and to codesign imec’s process technology innovations with system level value proposition. The Compute System Architecture Unit (CSA) at imec leads research into futuristic high-performance, energy-efficient and secure computer systems to extend imec’s semiconductor research leadership deep into the next decade. CSA is researching emerging workloads and their performance on heterogeneous computer architectures for next-generation Artificial Intelligence (AI). The team is responsible for architecture definition of new CPUs, GPUs, machine learning accelerators, ... and the systems in which they are integrated.
We are looking for a research engineer to contribute hands-on to the performance analysis of emerging machine learning training workloads. From transformers to graph neural networks and far beyond, you will analyze the performance of algorithms and their implementations on hardware, and instrument them to record any statistics inherently related to the performance and energy usage of these workloads. You will identify and record relevant statistics using different methods, e.g. at algorithm design time, at compile time, or at runtime and store them in a workload profile. In collaboration with performance modeling engineers and system architects, you will use these workload profiles in combination with performance models of a wide range of computer architectures to analyze and optimize performance and energy usage on said architectures. For example, statistics for different forms of the inherent parallellism available in the workload, such as ILP, MLP, TLP, DLP, ... can be used in choosing the high-level architecture of an accelerator. You'll help build the next generation ML systems by codesigning efficiency optimizations for compute, communication and memory that enable scaling beyond what is currently possible.
What we do for you
We offer you the opportunity to join one of the world’s premier research centers in nanotechnology at its headquarters in Leuven, Belgium. With your talent, passion and expertise, you’ll become part of a team that makes the impossible possible. Together, we shape the technology that will determine the society of tomorrow.
We are committed to being an inclusive employer and proud of our open, multicultural, and informal working environment with ample possibilities to take initiative and show responsibility. We commit to supporting and guiding you in this process; not only with words but also with tangible actions. Through imec.academy, 'our corporate university', we actively invest in your development to further your technical and personal growth.
We are aware that your valuable contribution makes imec a top player in its field. Your energy and commitment are therefore appreciated by means of a competitive salary with many fringe benefits.
Who you are
- You obtained a Master’s or Doctoral degree in Computer Science or Computer Engineering with professional experience.
- You have experience with workload performance analysis on CPUs and ideally GPUs or emerging ML accelerator architectures.
- You have experience with training and implementing various, large-scale machine learning models (MLOps).
- You are strong in concurrent (multithreaded and distributed) programming in C++ and Python and usage of tools and libraries like openMP, MPI, PyTorch, Tensorflow or other computation graph libraries.
- GPU programming in CUDA or Julia/Chapel is considered a plus.
- You are familiar with resource management middleware, such as found in the Linux operating system.
- You have a keen interest in computer architecture, both at system level and microarchitectural level.
- You have an analytical mindset and think at an abstract level, yet you have a hands-on attitude.
- You work in a structured, transparent and accurate way.
- You are a constructive team player and actively share experience and knowledge with colleagues.