Adrien Cassagne
Associate Professor in Computer Science
Sorbonne Université, LIP6
4 Place Jussieu, 75005 Paris, France
Office 24-25/403
+33 1 44 27 65 61
adrien.cassagne@lip6.fr
Short Bio
Since 2021, I hold an Associate Professor position (Maître de Conférences in french) at Sorbonne University (Paris, France) . For my research work, I'm attached to the LIP6 laboratory (Laboratoire d'Informatique de Paris 6) in the ALSoC (Hardware and Software for Embedded System) team .
In 2020, I completed my Ph.D. thesis under the co-supervision of Prof. Denis Barthou (Inria Lab. ) and Prof. Christophe Jégo (IMS Lab. ) in Bordeaux, France. In 2013, I graduated from the Master's degree in Computer Science at University of Bordeaux.
My main research concern is about providing efficient implementations of parallel algorithms for multi-core and heterogeneous programmable architectures. Recently, I've been focusing on low power Systems-on-a-Chip (SoCs) as the energy efficiency is becoming increasingly crucial. In general, I am interested in everything related to efficient software implementations. Here are some of the domains I'm working on (or have worked on in the past):
- Computer Vision on embedded heterogeneous SoCs
- Software-Defined Radio on multi-core & SIMD CPUs
- Computational Fluid Dynamics on Supercomputers (CPUs & discrete GPUs)
Open Source Research Software
A Fast Forward Error Correction Toolbox (AFF3CT)
AFF3CT is a simulator and a library dedicated to the Forward Error Correction (FEC or channel coding). It is written in C++ and it supports a large range of codes: from the well-spread Turbo codes to the new Polar codes including the Low-Density Parity-Check (LDPC) codes. AFF3CT can be used as a command line program and it simulates communication chains based on a Monte Carlo method.
AFF3CT was first intended to be a simulator but as it developed, the need to reuse sub-parts of the code intensified: the library was born. Below is a list of possible applications for the library:
- Build custom communication chains that are not possible with the simulator
- Facilitate hardware prototyping
- Enable various modules to be used in Software-Defined Radio contexts
Fast Meteor Detection Toolbox (FMDT)
Fast Meteor Detection Toolbox or FMDT is a software designed to detect meteors. FMDT is foreseen to be applied to airborne camera systems, e.g. in atmospheric balloons or aircraft. It is robust to camera movements by a motion compensation algorithm.
FMDT is ready for real-time processing on small boards like Raspberry Pi 4 or Nvidia Jetson Nano for embedded systems. For instance, on the Raspberry Pi 4 (@ 1.5 GHz), FMDT is able to compute 30 frames per second on a HD video sequence while the instant power is only around 4 Watts.
Source code » Documentation »My Intrinsics++ (MIPP)
MIPP is a portable wrapper for vector intrinsic functions (SIMD) written in C++11. It works for SSE, AVX, AVX-512, ARM NEON and SVE (work in progress) instructions. MIPP wrapper supports simple/double precision floating-point numbers and also signed integer arithmetic (64-bit, 32-bit, 16-bit and 8-bit).
With the MIPP wrapper you do not need to write a specific intrinsic code anymore. Just use provided functions and the wrapper will automatically generates the right intrisic calls for your specific architecture.
Source code »AFF3CT-core
AFF3CT-core is a Domain Specific Embedded Language (DSEL) for streaming applications. It comes in the form of a C++11 library to link with. Its main features are:
- Definition of dataflow components: modules, tasks and sockets
- Elementary modules and tasks implementations
- Multi-threaded runtime with replication and pipeline parallel constructs
The DSEL is suitable for SDR systems, audio/video processing and more generally it matches single-rate Synchronous DataFlow (SDF) streaming applications. It is used as the multi-threaded runtime of AFF3CT and FMDT.
Source code » Documentation »Teaching
I'm affected to Sorbonne University (UFR d'Ingénierie 919) and to the Polytech Sorbonne engineering school (UFR 933). I am mainly teaching about parallel programming, computers architecture and operating systems.
MU5IN160 - Parallel Programming for Embedded Architectures (M2)
Slides:
- Introduction to Modern Programmable Architectures - Focus on Single-core CPU
- Single Instruction Multiple Data - ARM NEON and MIPP Wrapper
- Advanced SIMD Programming - Use cases in ARM NEON
- Multi-threading on CPUs with OpenMP and Metrics for Performance Analysis of Applications
- AFF3CT a DSEL dedicated to Streaming Applications on Multi-core CPUs
- Initiation to GPU Programming - Use cases in OpenCL
Hands-on sessions:
- Single-core CPU Optimizations
- SIMD Programming
- Advanced SIMD Programming
- Introduction to OpenMP
- Dataflow for Motion Application
- Multi-threading for Motion Application
- GPU Programming
MU5IN166 - Hot Topics (M2)
Evolution of the SIMD ISAs on General Purpose CPUs (in french)
EPU-I9-ICH - High Performance Computing (M2)
EPU-N6-IPS - Operating System Fundamentals (L3)
To appear soon.
LU3IN029 - Computer Architecture (L3)
LU3IN010 - Principles of Operating Systems (L3)
To appear soon.
Publications
Supervision
Ph.D. Student
- Maxime Millet (from 2020) - Approximate optical flow computing on low power SoCs for meteor detection from a nano-satellite. (with Prof. Lionel Lacassagne )
Engineer
Kun He (2019, 1 year) - Development of a MATLAB interface for the AFF3CT C++ library.
Master Internship
- Mathuran Kandeepan (2023, 6 months) - Execution of streaming tasks graph on heterogeneous CPU/GPU architectures with shared memory.
- Clara Ciocan (2023, 6 months) - Improving the robustness of a meteor detection application with a moving camera.
- Nourdinne Hammachi (2023, 2 months) - AFF3CT DSEL extension: support for control flow in a multi-threaded context (pipeline and replication).
- Yacine Idouar (2023, 2 months) - AFF3CT DSEL extension: implement a new type of read & write data ("forward socket").
- Michaël Baudeur (2023, 2 months) - Implementation of an acquisition system for an Ethernet camera using the Aravis API.
- Clara Ciocan & Mathuran Kandeepan (2022, 2 months) - Development of a computer vision application for meteor detection.
- Maël Keryell (2021, 6 months) - Semi-automatic exploration of computational expressions, finding compromise between efficiency and precision.
Bachelor Internship
- Enrique Galvez (2022, 2 months) - Optimizing the execution of an optical flow application on a heterogeneous & parallel architecture.
- Edgar Baucher (2021, 2 months) - Development of a header only C++ library for the RISC-V Vector Extension instruction set (RVV).
- Mehdi Naciri (2019, 4 months) - Development of a web application dedicated to displaying, comparing and searching in a database of scientific results.
- Enrique Galvez (2022, 2 months) - Optimizing the execution of an optical flow application on a heterogeneous & parallel architecture.
- Edgar Baucher (2021, 2 months) - Development of a header only C++ library for the RISC-V Vector Extension instruction set (RVV).
- Mehdi Naciri (2019, 4 months) - Development of a web application dedicated to displaying, comparing and searching in a database of scientific results.