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

About the research centre or Inria department The Inria center at the University of Bordeaux is one of the nine Inria centers in France and has about twenty research teams.. The Inria centre is a major and recognized player in the field of digital sciences. It is at the heart of a rich R&D and innovation ecosystem: highly innovative SMEs, large industrial groups, competitiveness clusters, research and higher education players, laboratories of excellence, technological research institute... 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