Prototypage rapide d’IA sur SDR par approche conjointe matérielle/logicielle
Contexte
Les techniques d’intelligence artificielle (IA) prennent une part de plus en plus importante dans les systèmes informatiques. Elles permettent, entre autres, une reconnaissance (de forme, de contexte ...), une automatisation des tâches, et une classification de paramètres d’intérêt. Récemment, plusieurs articles de la littérature ont étudié ces techniques appliquées au contexte des communications radio-fréquence. Les intérêts sont tels qu’un groupe de travail IEEE s’est créé autour de l’utilisation du machine learning (ML) pour les couches physiques (PHY) et de contrôle d’accès moyen (MAC) pour tous types de systèmes de communications [9].
En effet, la calibration des paramètres des algorithmes d’émission-réception, ou des techniques d’optimisation de la transmission peuvent se faire par des techniques d’apprentissage [5, 19], ouvrant de nombreuses perspectives pour l’évolution des réseaux cellulaires [16]. Ces méthodes sont généralement coûteuses en ressources de calcul et leur intégration dans des architectures radios aux contraintes de performances marquées (latence, débit, et consommation) est un verrou à leur utilisation.
Une radio logicielle (ou Software Defined Radio (SDR) en anglais) est un composant visant à réaliser une opération d’émission-réception d’un signal [14]. Contrairement aux solutions classiques où ces étapes sont réalisées sur un composant matériel (hardware) dédié, une SDR réalise ces opérations par une approche logicielle (software) faisant abstraction des composants analogiques [17]. Les avantages de ces solutions sont nombreuses : une grande flexibilité par l’utilisation d’une description software, une réduction des coûts avec des plateformes génériques, et un temps de conception court (fast prototyping) [1]. Ainsi, de nombreuses solutions utilisant des SDR ont vu le jour dans des domaines variés :de la radio amateur [18] à l’émulation de station de base [15] ou au sondage canal pour la radio cognitive [13, 2].
L’abstraction des couches matérielles limite cependant les performances de ces radios en termes de bande passante et de consommation énergétique. Ainsi, les capacités de traitement matériel ont augmenté avec les générations successives de SDR afin d’accélérer la quantité de traitements des données (cf Figure 1). Le paradigme Software defined est alors remis en cause, et se pose ainsi la question de la méthodologie et du flot de conception associé à ces nouvelles SDR.
Positionnement et objectifs
Figure 1 : Débit et ressources Hardware accessible en fonction des générations des radios logicielles (ici de Ettus research) [7].
La plupart des méthodes de description des SDR sont logicielles, telles que l’initiative GnuRadio (et le paramétrage d’IP matérielles par RFNoC) ou bien par des outils propriétaires (e.g. ceux proposés par Matlab/Simulink). Ces approches permettent l’intégration de blocs existants (généralement des IP propriétaires ou open-source) mais ne permettent pas de créer des traitements adaptés pouvant être exécutés sur des cibles différentes tout en gardant un haut-niveau d’abstraction. Dans le cadre de la thèse, l’abstraction des couches basses se fera par l’utilisation de la synthèse haut-niveau qui permet d’utiliser les ressources matérielles des SDR tout en gardant un niveau de description relativement élevé (typiquement C/C++). De la même façon, les algorithmes sophistiqués d’apprentissage sont utilisés et paramétrés via des langages de description haut-niveau (typiquement Matlab ou Python) au détriment des performances attendues. Ainsi, pour des raisons de performances, les cœurs de traitement ne sont pas décrits dans le langage d’origine (c’est par exemple le cas de TensorFlow pour Python) rendant leur synthèse matérielle particulièrement délicate : on parle alors du paradoxe du two languages problem [4].
L’objectif est donc de proposer une approche d’abstraction qui permet d’exécuter des traitements évolués, en particulier pour l’IA, en software (sur différentes architectures de processeur) ou hardware (sur différents FPGA). Cependant, un certain nombre de verrous méthodologiques subsistent. L’objectif de la thèse de doctorat est donc d’apporter une réponse aux questions suivantes :
Comment réaliser un traitement d’IA sur des architectures matérielles tout en gardant une abstraction haut niveau de sa description ?
Les approches classiques se distinguent par l’abstraction forte des interfaces de traitements et des radios, limitant ainsi sévèrement les performances (débit, latence, consommation). Dans le cadre de la thèse, on compte utiliser les ressources matérielles présentes dans les cartes SDR, de type FPGA ou co-processeur, pour permettre le déploiement et l’application de méthodes d’IA.
Comment intégrer les cibles matérielles dans le flot de conception pour cibler différentes SDR ?
Une même chaîne de traitement (e.g. application de type IA) peut être utilisée sur des SDR avec des architectures différentes (architecture de processeur différentes, accélérateurs matériels. . .). Un objectif est donc de proposer un flot de conception intégrant les spécificités de plusieurs architectures afin de générer, à partir de la même description haut-niveau, des exécutables pour des architectures à base de FPGA, de System On Chip (SoC) ou de Digital Signal Processor (DSP) ?
Comment quantifier et maîtriser le gain de performance éventuel ainsi que la capacité à converser une approche de prototypage rapide ?
L’exploitation efficace des ressources hardware améliorera le débit et la latence des SDR ciblées. De plus, passer d’architecture SDR sur des processeurs génériques à des architectures spécialisées en traitement du signal (à base de DSP ou micro-contrôleurs) permettra de diminuer drastiquement la consommation énergétique du système. Il sera donc primordial de quantifier finement ces gains. Par ailleurs, ce gain de performance doit être mis en perspective avec la nécessité de conserver une approche fast prototyping où la maîtrise du temps de conception est fondamentale
Approche proposée
Figure 2 – Flot de conception envisagé avec l’intégration des spécificités des cibles dans le backend
Afin de pouvoir réaliser des blocs de traitement hardware avec un temps de conception limité, une approche de synthèse haut-niveau (High Level Synthesis ou HLS) est pertinente [8]. Cette approche est cependant souvent considérée indépendamment des traitements software. Dans le cadre de la thèse, on se propose de considérer une approche software unifiée par l’intermédiaire du langage Julia, récemment passé en version stable [10]. Ce langage issu d’une longue incubation offre un niveau d’abstraction élevé avec d’excellentes performances. Ce langage utilise le paradigme multiple-dispatch combiné à une compilation en heterogeneous computing générant du code via le compilateur LLVM [12] (comparable à l’approche HLS classique proposée par les outils de conception actuels). Le code généré est donc spécialisé et peut être adapté à la cible désirée en utilisant le
backend LLVM approprié. Ainsi, à partir d’une description unique en Julia, il peut être envisagé de créer un exécutable capable d’adresser des architectures SDR variées en adaptant les étages de compilation. Pour illustrer notre approche, le synoptique du flot de conception envisagé est présenté sur la Figure 2, et s’approche de celui proposé pour développer du code sur GPU [3].
A partir d’un même code Julia, différents codes machines ou représentations pourront être générés à partir d’une optimisation de la représentation intermédiaire (IR) issue de LLVM (LLVM-IR). Cette optimisation nécessitera la mise en place de macros et de routines spécifiques (via l’adaptation du package Julia LLVM.jl) qui permettront d’adapter la représentation intermédiaire qui fera appel ensuite au backend spécifique désiré, en particulier celui permettant de générer du code pour FPGA.
Une fois ce flot de conception fonctionnel, il conviendra d’évaluer l’intérêt de la solution proposée. Tout d’abord, les performances d’une chaîne de communication numérique classique (de type multiporteuse) seront évalués en termes de débit et de latence sur des SDR à base de FPGA et CPU. Cette première étape permettra de valider le flot de conception et de montrer l’intérêt d’utiliser les ressources hardware tout en conservant une description haut-niveau (hardware software partitioning). Dans un second temps, on s’intéressera au déploiement d’une technique d’apprentissage à base de réseau de neurones pour identifier un système dans un réseau (RF Fingerprint [6]) en utilisant le module de machine learning de Julia Flux [11].
Ainsi, la contribution principale de la thèse sera de proposer et d’évaluer une méthodologie de synthèse de haut-niveau permettant la génération de code FPGA et de code machine (compatible ARM et i386) à partir d’une description Julia. Cette approche novatrice permettra d’avoir un flot de conception totalement unifiée entre les traitements software et la synthèse des traitements hardware et de cibler des radios logicielles avec des architectures variées. De nombreuses perspectives sur l’intégration efficace de traitements complexes pourront émerger, ouvrant des perspectives tangibles sur l’utilisation grande échelle d’architectures SDR variées.
[1] Asad A Abidi. The path to the software-defined radio receiver. IEEE Journal of Solid-State Circuits, 42(5) :954– 966, 2007.
[2] Hüeyin Arslan and Joseph Mitola III. Cognitive radio, software-defined radio, and adaptive wireless systems. Wireless Communications and Mobile Computing, 7(9) :1033–1035, 2007.
[3] Tim Besard, Christophe Foket, and Bjorn De Sutter. Effective extensible programming : unleashing julia on gpus. IEEE Transactions on Paral lel and Distributed Systems, 30(4) :827–841, 2018.
[4] Jeff Bezanson, Alan Edelman, Stefan Karpinski, and Viral B Shah. Julia : A fresh approach to numerical computing. SIAM review, 59(1) :65–98, 2017.
[5] Mingzhe Chen, Ursula Challita, Walid Saad, Changchuan Yin, and Mérouane Debbah. Machine learning for wireless networks with artificial intelligence: A tutorial on neural networks. arXiv preprint arXiv :1710.02913, 2017.
[6] Songlin Chen, Hong Wen, Jinsong Wu, Aidong Xu, Yixin Jiang, Huanhuan Song, and Yi Chen. Radio Frequency Fingerprint-Based Intelligent Mobile Edge Computing for Internet of Things Authentication. Sensors, 19(16), 2019.
[7] Ettus Research. Universal Software radio platform (USRP), 2017. https ://www.ettus.com/.
[8] M. Gautier, G. S. Ouedraogo, and O. Sentieys. Design Space Exploration in an FPGA-Based Software Defined Radio. In 2014 17th Euromicro Conference on Digital System Design, pages 22–27, Aug 2014.
[9] IEEE. Machine Learning for Communications ETI, 2019. https ://mlc.committees.comsoc.org/.
[10] JuliaLang. The Julia Programming Language, 2018. https ://julialang.org/.
[11] JuliaLang. Flux : the Julia Machine learning module, 2019. https ://github.com/FluxML/Flux.jl.
[12] LLVM. The LLVM Compiler Infrastructure , 2019. https ://llvm.org/.
[13] JI Mitola. Cognitive radio. An integrated agent architecture for software defined radio. 2002.
[14] Joseph Mitola. Software radios : Survey, critical evaluation and future directions. IEEE Aerospace and Electronic Systems Magazine, 8(4) :25–36, 1993.
[15] Markus Mueck, Antti Piipponen, et al. ETSI reconfigurable radio systems : status and future directions on software defined radio and cognitive radio standards. IEEE Communications Magazine, 48(9) :78–86, 2010.
[16] Emilio Calvanese Strinati, Sergio Barbarossa, Jose Luis Gonzalez-Jimenez, Dimitri Ktenas, Nicolas Cassiau, Luc Maret, and Cedric Dehos. 6G : the next frontier : from holographic messaging to artificial intelligence using subterahertz and visible light communication. IEEE Vehicular Technology Magazine, 14(3) :42–50, 2019.
[17] Walter HW Tuttlebee. Software defined radio : enabling technologies. John Wiley & Sons, 2003.
[18] Tore Ulversoy. Software defined radio : Challenges and opportunities. IEEE Communications Surveys & Tutorials, 12(4) :531–550, 2010.
[19] Tianqi Wang, Chao-Kai Wen, Hanqing Wang, Feifei Gao, Tao Jiang, and Shi Jin. Deep learning for wireless physical layer : Opportunities and challenges. China Communications, 14(11) :92–111, 2017.