Profile Picture

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
Source code » Documentation » Website »
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:

  1. Introduction to Modern Programmable Architectures - Focus on Single-core CPU
  2. Single Instruction Multiple Data - ARM NEON and MIPP Wrapper
  3. Advanced SIMD Programming - Use cases in ARM NEON
  4. Multi-threading on CPUs with OpenMP and Metrics for Performance Analysis of Applications
  5. AFF3CT a DSEL dedicated to Streaming Applications on Multi-core CPUs
  6. Initiation to GPU Programming - Use cases in OpenCL

Hands-on sessions:

  1. Single-core CPU Optimizations
  2. SIMD Programming
  3. Advanced SIMD Programming
  4. Introduction to OpenMP
  5. Dataflow for Motion Application
  6. Multi-threading for Motion Application
  7. GPU Programming

Moodle 2023 link

MU5IN166 - Hot Topics (M2)

Evolution of the SIMD ISAs on General Purpose CPUs (in french)

EPU-I9-ICH - High Performance Computing (M2)

Moodle 2023 link

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.