Engineer F/M - Development and optimization of a co-designed runtime system for running high performance machine learning chains

Inria Talence Talence, France

About the position

Context
The CAMELIA (Hardware and Software Components for Advanced AI
Accelerators) program focuses on developing scalable, modular AI
acceleration components and their associated software environment. It
aims to create specialized accelerators that target key functions for
executing AI models, using a joint hardware/software/application
co-design approach. Anticipating breakthroughs in both hardware and
software, the program aims to achieve significant performance
gains—particularly in energy efficiency—compared to current industry
solutions based on GPUs or NPUs.
One of the critical components of this co-designed architecture is the
runtime system, whose role is precisely to drive the link between the
application and the hardware. It monitors the effective use of computing
resources and dynamically adjust the mapping of work onto such resources. It
acts such as to minimize idle times and load imbalance, while ensuring the
overlap of computations with non-computational activities such as load
balancing and inputs/outputs.
The specific challenge for CAMELIA's runtime system is to achieve this
optimization work on extremely fine-grained work items. To successfully
achieve this challenge, a tight collaboration with the compiler toolchain is
necessary, in order to discover at run-time only the strictly dynamical
information bits, and nevertheless enable building optimization decisions on a
rich and detailed semantic context.
Assignment
A prototype runtime system adapted to Program CAMELIA's needs has been defined.
The mission proposed to the person recruited will be to develop and optimize
this prototype under the direction of permanent project members, to achieve a
high level of performance in the execution of machine learning chains on the
hardware infrastructure built by CAMELIA, and in relationship with the compiler
toolchain assembled within this same project.
The person recruited will be responsible for developing and optimizing this
prototype into a software foundation able to support the whole CAMELIA software
stack, and to make the best use of the hardware platform of the project in all
the diversity of its configurations and for assorted practical use cases. This
optimization axis will aim to obtain a high level of performance, in terms of
execution speed, but also with an energy footprint kept under control. For
that, this work will be conducted in tight cooperation with project partners in
charge of the development of the hardware and software modules, under a logic
of synergistic co-design.
Moreover, the person recruited will be in charge of implementing the automated
validation of software developments as a continuous integration framework,
write software documentation, and technically supporting the project members to
enforce and maintain a good interoperability of the runtime system with the
other software and hardware components of Program CAMELIA.
Main activities
Main activities
Software development of the runtime system;
Definition, tuning and optimisation of the proposed scheduling policies;
Validation of software developments in a continuous integration process;
Preparation, validation and maintenance of software documentation and of software interoperability with the other components of the project;
Evaluation and monitoring of performance on a set of use cases defined by the project.
Additional activities
Participation to the preparation of the reporting elements and communication elements of the project;
Participation to collective actions of the project: meetings, seminars, tutorials, workshops;
Collaboration with a pluridisciplinary community, at the interface between hardware and software.
Skills
Technical skills and level required
Excellent programming level in C and C++ languages;
Mastering of software development on Linux environments with the Git version control system, and with continuous integration frameworks;
Mastering of parallel programming, distributed programming and GPU programming on HPC platforms;
Mastering of machine learning chains' usage for training and inference;
Experience in source code validation and verification.
Languages
Excellent written and spoken English level.
Relational skills
Personal implication and sense of the mission;
Team work;
Ability to integrate and communicate in a plural scientific community.

This listing was collected from a public source and is reproduced here for information only. Always confirm the details on the original posting before applying.
View the original posting

Similar positions