Skip to content

// pytorch → photons

Ingénieur logiciel · systèmes IA · Paris

Je construis la couche logicielle entre PyTorch, le silicium et la lumière.

Backends, noyaux, runtimes, chemins driver, interfaces firmware et démos : la machinerie qui transforme un matériel IA exotique en plateforme que les développeurs peuvent vraiment prendre en main.

Actuellement chez Arago, je construis du logiciel pour un accélérateur IA photonique, des points d'entrée PyTorch/ATen au dispatch runtime et à l'exécution device.

défiler

// couche_00 · signal

À propos

Systèmes IA, robotique et logiciel au contact du matériel.

Portrait d'Alhussein Jamil

Alhussein Jamil

Ingénieur systèmes IA

Paris, France

Ces jours-ci chez Arago, je travaille sur la couche logicielle qui fait parler PyTorch avec un accélérateur IA photonique. En pratique : chemins backend, runtimes, mouvements mémoire, queues de commandes, sérialisation des launches, et tout le câblage côté firmware qui transforme du matériel très spécial en quelque chose qu'on peut vraiment lancer.

Avant ça, j'ai aidé des exosquelettes à prendre de meilleures habitudes de marche avec du reinforcement learning chez Wandercraft, puis des systèmes robotiques à mieux comprendre ce qu'ils voyaient grâce à la vision par ordinateur chez EyePick. Côté formation : IA et systèmes intelligents à l'École polytechnique et Sorbonne Université.

Je suis le plus heureux quand le code doit négocier avec le réel : matériel capricieux, physique, humains, latence, hypothèses qui explosent, tout le cirque. Oui, je vibe code aussi. Mais promis, je savais coder avant que l'IA devienne la réponse à toutes les questions.

Langues: Français (Bilingue) · Arabe (levantin) (Langue maternelle) · Anglais (Bilingue) · Espagnol (Intermédiaire) · Centres d’intérêt: MMA, Énigmes, Violon, Escalade

// couches_cachées · expérience

Là où le signal s'est affiné

Accélérateurs, robotique, vision par ordinateur, et produits sortis du notebook.

Ingénieur Logiciel — Stack Accélérateur IA

Arago · Paris

  • Backend device PyTorch/ATen pour un accélérateur IA photonique : noyaux custom, exécution de graphes et intégration framework.
  • Runtime et dispatch pour partitionner les graphes entre devices, gérer l'allocation rapide, les mouvements peer, la sérialisation des paramètres et les queues concurrentes.
  • Exécution côté firmware : un coeur de contrôle décompose des régions compilées ou des noeuds isolés en graphes primitifs device exécutés sur coeurs mono et points de synchronisation.
  • Intégration bas niveau hardware/software : émission ISA custom, interfaces driver, setup device, simulation et validation.
Voir plus
Problème
La multiplication matricielle sur matériel photonique est une charge importante, mais Arago construit un système accélérateur IA complet : matériel, runtime, intégration PyTorch, mouvements mémoire, dispatch firmware, exécution noyau et orchestration multi-device. Côté développeur, ça doit rester du PyTorch normal.
Construit
La couche logicielle entre PyTorch et le silicium custom — abaissement compilateur, runtime host, chemins driver, allocation rapide, mouvements device-to-device, sérialisation des paramètres de lancement, queues de commandes et dispatch côté firmware sur les coeurs mono.
Le dur
Une ergonomie proche de CUDA pendant que des régions de graphe ou des noeuds isolés sont placés sur les devices, chaque launch est décomposé en graphe primitif device, les coeurs mono se coordonnent via un tissu de calcul partagé par device, et les événements signalent la readiness des tenseurs au framework.
PyTorchRuntimeFirmwareAccelerators
GitHub ↗

Schéma runtime

Graphe PyTorch → split compilateur → exécution multi-device

01

Graphe de calcul PyTorch

input aten.mm norm gelu copy aten.mm add output
  • DAG de dépendances ATen vraiment en forme de graphe
  • Les arêtes tenseurs guident le placement
  • Des régions exécutables sont choisies pour l'accélérateur
02

Compilateur + runtime host

01 Abaisser le graphe
02 Placer le travail
03 Plan launches + transferts
03

Exécution par device

sous-graphe A

Device 0

launch -> DAG primitif

Sessions d'exécution

queue 0 queue 1 queue 2

Graphe primitif device

Coeur contrôle
Unité de calcul laser
Sync + événements device
PCIe / interconnect device
sous-graphe B

Device 1

noeud ou région -> DAG primitif

Sessions d'exécution

queue 0 queue 1 queue 2

Graphe primitif device

Coeur contrôle
Unité de calcul laser
Sync + événements device
04

Résultat

  • Un launch peut être un sous-graphe compilé ou un noeud PyTorch isolé
  • Le firmware device le décompose en DAG primitif pour les coeurs mono
  • Les tenseurs intermédiaires passent par PCIe ou un interconnect device

Schéma conceptuel — termes publics génériques uniquement.

Ingénieur Machine Learning

EyePick · Paris

  • Pipelines de vision par ordinateur pour l'automatisation robotique en temps réel (industrie, agriculture, culinaire).
  • Systèmes de détection d'anomalies et de classification basés sur l'image pour le contrôle qualité.
  • Adaptation de modèles basés sur ResNet comme alternative aux pipelines YOLO en raison de contraintes de licence.

Stagiaire en Apprentissage par Renforcement

Wandercraft · Paris

  • Politiques de contrôle RL pour le robot bipède Cassie et l'exosquelette Eve.
  • NVIDIA Isaac Gym et Ray RLlib pour la simulation parallèle et l'entraînement distribué.
  • Transfert sim-to-real : apprentissage par imitation, adaptation de domaine, adaptation visuelle.

Stagiaire Algorithmes d'IA

Poppins (anciennement Mila) · Paris

  • Algorithme de difficulté adaptative pour un jeu thérapeutique destiné aux enfants dyslexiques.
  • Clustering et métriques de jeu pour ajuster la difficulté dynamiquement.
  • Contribution au développement algorithmique et à l'intégration côté jeu.

// poids · boîte_outils

La boîte à outils

Langages, systèmes, formation, enseignement, et ce qui sert encore.

Programmation

  • Python
  • C++
  • C
  • OCaml
  • Java
  • C#
  • SQL

Systèmes d'IA

  • Exécution PyTorch
  • Abaissement de graphes
  • Conception de runtime
  • ISA sur mesure
  • Noyaux
  • Multi-cœurs

Machine Learning

  • Vision par ordinateur
  • Apprentissage par renforcement
  • Apprentissage par imitation
  • Sim-to-real
  • Déploiement

Robotique

  • NVIDIA Isaac Gym
  • Ray RLlib
  • Contrôle robotique
  • Automatisation industrielle
  • Interfaces VR

Outils

  • Linux
  • Git
  • Docker
  • Débogage
  • Intégration HW/SW

FORMATION

  • École polytechnique

    Diplôme d'Ingénieur — Équivalent Master · 2020 — 2024

  • Sorbonne Université — UPMC

    Master 2 — Systèmes Intelligents · 2023 — 2024

  • Lycées Louis-le-Grand & Buffon

    CPGE — MPSI → MP* · 2018 — 2020

ENSEIGNEMENT

  • Master X-HEC

    Intervenant invité en machine learning pour les étudiants en master.

  • Lycée Saint-Louis

    Examinateur oral (colleur) en mathématiques pour les étudiants en CPGE.

LANGUES & LOISIRS

Français bilingue · Arabe (levantin) langue maternelle · Anglais bilingue · Espagnol intermédiaire

  • MMA
  • Énigmes
  • Violon
  • Escalade

// propagation · travaux

Projets

Projets perso avec démos — RL, jeux, VR, géométrie, et des trucs qu'on peut vraiment ouvrir.

open source · RL · mujoco

DropRL — locomotion bipède

Pipeline Ray RLlib, simulation MuJoCo et export de politique pour la locomotion type Cassie.

PythonRay RLlibMuJoCo
Problème
Apprendre à un bipède Cassie à marcher en simulation sans récompenser des astuces fragiles.
Construit
Pipeline Ray RLlib, simulation MuJoCo et export de politique pour la locomotion type Cassie.
Le dur
RL distribué où le score peut monter pendant que la marche reste visiblement mauvaise.
/ droprl · cassie · signaux debug RL synchronisés à la vidéo t = 0.0s
/ droprl · snake-v0 · agent IA iter 0 · récompense 0.0 · score 0
étoile · politique π

projet de fin d'études · VR · robotique

Affective Touch VR

Scène VR Unity avec contrôle du bras Franka Emika via Redis, calibration du hand tracking et notation agréabilité/intensité dans le casque.

UnityVRFrankaRedis
Problème
Mener une expérience de psychophysique où une caresse virtuelle reste liée à un vrai setup robotique.
Construit
Scène VR Unity avec contrôle du bras Franka Emika via Redis, calibration du hand tracking et notation agréabilité/intensité dans le casque.
Le dur
Garder rendu VR, matériel Franka/haptique et capture des réponses synchronisés sans casser l'immersion.

Unity · VR · Franka Emika · Redis · Hand tracking

Simulation tactile

Simulation du toucher affectif

Caresser au pinceau sur une main virtuelle — stimulus central de l'expérience.

Protocole & interface

Calibration

Calibration du hand tracking

Le participant confirme les poses et suit un compte à rebours avant les essais.

Notation in-VR

Interface agréabilité & intensité

Curseurs ajustés entièrement en VR — pas de retrait du casque entre les essais.

jeu 2d · Unity · TDAH

Jeu puzzle thérapeutique — étude exploration/exploitation

Hub Unity avec quatre mini-jeux puzzle, salles pixel-art, fog-of-war, logique de grille et puzzles physiques.

UnityC#Game design
Problème
Construire un prototype jouable pour observer comment des enfants avec TDAH passent de l'exploration à l'exploitation.
Construit
Hub Unity avec quatre mini-jeux puzzle, salles pixel-art, fog-of-war, logique de grille et puzzles physiques.
Le dur
~200 heures solo : boucle de jeu, level design, mécaniques, lumières et build pour tests utilisateurs.

Hub & sélection de niveau

Temple hub avec statues repères et portails vers chaque mini-jeu.

Développement solo · ~200 heures · conçu pour des tests avec enfants TDAH

4 mini-jeux

Puzzle de caisses colorées

Sokoban sur grille : pousser les caisses sur les dalles de la même couleur.

Pont fragile

Caisses numérotées indiquent combien de cases peuvent être traversées avant l'effondrement.

Glace & pièges

Glissement sans friction avec pics entre le départ et l'objectif.

Labyrinthe à lampe

Labyrinthe circulaire en fog-of-war — seules les cases proches restent visibles.

IA de jeux · pygame

Noine — Jeu du Moulin

Règles complètes en Pygame avec bot Minimax.

MinimaxPygamePython
Problème
Implémenter un jeu de plateau complet avec un adversaire IA compétent.
Construit
Règles complètes en Pygame avec bot Minimax.
Le dur
Génération de coups et profondeur de recherche sur les phases placement, déplacement et vol.
/ noine · jeu du moulin · minimax ·

cliquez un point · formez un moulin pour capturer

version Pygame originale

Plateau Noine en milieu de partie
Milieu de partie
Plateau Noine pendant un moulin
Phase moulins

géométrie · transport optimal

Distances de Wasserstein convolutives

Implémentation Python des distances de Wasserstein convolutives (Solomon et al., SIGGRAPH 2015).

PythonGéométrie
Problème
Calculer efficacement des distances de transport optimal sur grilles et maillages.
Construit
Implémentation Python des distances de Wasserstein convolutives (Solomon et al., SIGGRAPH 2015).
Le dur
Calcul de distance sur domaines structurés sans matérialiser toute la matrice de coût.

Démos de barycentres

Morphing de formes 2D

Des points se transforment en étoile via un barycentre de Wasserstein convolutif sur une grille 2D.

Morphing d'images RGB

Barycentres par canal qui mélangent deux photos couleur en préservant la structure de masse.

Morphing voxel 3D

Dinosaure et double tore voxelisés interpolés par un barycentre convolutif 3D légèrement lissé.

Transport sur surface

Gaussiennes à noyau de chaleur sur un tore — 13 étapes discrètes où la masse se répand puis se reforme.

// espace_latent · projets

Quêtes secondaires sérieuses

Petits repos — des idées poussées jusqu'au bout, sans les habiller en produits.

// rendu · première_obsession

Créations 3D

Expériences 3ds Max, de 10 à 15 ans.

Enfant, j'étais fasciné par Pixar — les mondes, les personnages, la lumière. Je voulais créer des choses comme ça, alors vers 10 ans j'ai commencé à apprendre 3ds Max en hobby et j'y suis resté jusqu'à environ 15 ans : intérieurs, personnages, petites scènes comme celles ci-dessous. Je n'en ai pas fait un métier, mais c'était ma première longue obsession pour construire quelque chose à partir de rien à l'écran.

// couche_sortie · return

Contact

Projets, systèmes, puzzles techniques bizarres.

Dire bonjour

Utilisez le formulaire ou révélez l'adresse ci-dessous pour m'écrire directement.

Envoyer un message

Envoyé depuis le site — sans ouvrir de client mail.