Michael Reiser est, comme il le dit, « fanatique du timing ». Neuroscientifique au Janelia Research Campus du Howard Hughes Medical Institute à Ashburn, en Virginie, Reiser étudie la vision de la mouche. Certaines de ses expériences consistent à placer des mouches dans une arène immersive de réalité virtuelle et à redessiner la scène de manière transparente tout en suivant la réaction des insectes. Les PC modernes, avec leurs systèmes d'exploitation complexes et leurs unités centrales de traitement (CPU) multitâches, ne peuvent pas garantir la précision temporelle requise. Ainsi, Reiser, en collaboration avec des ingénieurs de Sciotex, une entreprise de technologie à Newtown Square, en Pennsylvanie, a trouvé un matériel informatique qui pourrait: un FPGA.
Un FPGA, ou réseau de portes programmables sur le terrain, est essentiellement de la « boue électronique », explique Bruno Levy, informaticien et directeur du centre de recherche Inria Nancy Grand-Est à Villers-lès-Nancy, en France. Il s'agit d'une collection de centaines, voire de millions d'éléments logiques non configurés sur une puce de silicium qui, comme l'argile, peut être « moulée »-et même re-moulée-pour accélérer des applications allant de l'alignement génomique au traitement d'image en passant par l'apprentissage en profondeur.
Supposons qu'un chercheur ait besoin de traiter rapidement les données en streaming d'une caméra en morceaux de 1 000 bits. La plupart des processeurs modernes ont des processeurs 64 bits et devraient diviser le problème en plus petits morceaux. Mais il est possible de configurer un FPGA pour faire ce calcul en une seule étape, explique Inria Nancy informaticien Sylvain Lefebvre. Même si chaque étape FPGA est plus lente que son homologue CPU, « c'est en fait une victoire, vous allez plus vite », dit-il, car le problème n'est pas décomposé. Les FPGA excellent dans les applications nécessitant un timing précis, des algorithmes critiques à la vitesse ou une faible consommation d'énergie, ajoute-t-il.
Surchargez vos disputes de données avec une carte graphique
Javier Serrano, responsable de la conception électronique et des logiciels de bas niveau au CERN, le laboratoire européen de physique des particules près de Genève, en Suisse, et ses collègues ont utilisé des FPGA, ainsi que White Rabbit-une extension sur mesure du protocole de réseau Ethernet-pour créer un système capable de capturer les instabilités dans le faisceau de particules du grand collisionneur de hadrons avec une précision nanoseconde.
à l'Université Queens Belfast, au Royaume-Uni, le spécialiste du matériel informatique Roger Woods construit un système de caméra à fibre optique qui utilise des FPGA pour traiter des images multispectrales des artères coronaires assez rapidement pour une utilisation pendant la chirurgie. Et chez Janelia, le scientifique principal Chuntao Dan a créé un système d'imagerie en boucle fermée qui peut interpréter et répondre au positionnement des ailes de mouche lorsqu'elles battent toutes les 5 millisecondes. Le système d'exploitation Windows de Microsoft introduit une gigue de timing allant jusqu'à 30 millisecondes, dit Dan. Mais en utilisant un FPGA, « nous avons réalisé toute l'analyse en 145 microsecondes », ce qui signifie que la résolution temporelle n'est jamais un problème malgré les limites d'un ordinateur conventionnel.
Les FPGA sont configurés en utilisant un langage de description matérielle (HDL), tel que VHDL ou Verilog, avec lequel les chercheurs peuvent implémenter n'importe quoi, des LED clignotantes à un CPU à part entière. Une autre option est Silice, un langage avec une syntaxe de type C que Lefebvre, qui l'a développé, a mis sur Verilog. Quel que soit le HDL utilisé, un outil de synthèse le traduit en une liste d'éléments logiques, et un outil lieu et itinéraire correspond à ceux de la puce physique. Le flux binaire résultant est ensuite flashé vers le FPGA.
Hub NatureTech
Le code de configuration, ou Gateware, comme l'appelle Serrano, n'est pas nécessairement difficile à écrire. Mais cela nécessite un état d'esprit différent de la programmation traditionnelle, explique Olof Kindgren, directeur et co-fondateur de la Free and Open source Silicon Foundation basée au Royaume-Uni. Alors que le code logiciel est procédural, Gateware est descriptif. « vous décrivez comment les données se déplacent entre les registres de votre conception à chaque cycle d'horloge, ce qui n'est pas ce que la plupart des développeurs de logiciels pensent », explique Kindgren. En conséquence, même les chercheurs avertis en informatique pourraient vouloir consulter un spécialiste pour tirer le plus de vitesse de leurs conceptions.
La technologie FPGA date du milieu des années 1980, mais les améliorations apportées aux logiciels de conception l'ont rendue de plus en plus accessible. Xilinx (propriété du fabricant de puces AMD) et altera (détenue par le fabricant de puces Intel) dominent le marché, et tous deux offrent des outils de développement et des puces de complexité et de coût variables. Une poignée d'outils open-source existent également, y compris Yosys (un outil de synthèse) et nextpnr (lieu et route), tous deux développés par l'informaticienne Claire Wolf, qui est chef de la technologie à la société de logiciels YoysHQ basée à Vienne. Lefebvre conseille de commencer par une carte FPGA prête à l'emploi qui comprend de la mémoire et des périphériques, tels que les ports USB et HDMI. Le Xilinx PYNQ, qui peut être programmé en utilisant Python, et le brise-glace à matériel ouvert et ULX3S, sont de bonnes options.
Les collaborateurs de Reiser chez Sciotex ont utilisé un FPGA de national instruments, basé à Austin, au Texas, qu'ils ont programmé en utilisant l'environnement de codage graphique LabVIEW de la société. Le matériel, y compris les composants pour l'acquisition de données, a coûté environ 5 000 $US, dit Reiser. Mais avec cela, il a obtenu sa réponse: les mouches peuvent réagir à des objets en mouvement dans leur champ de vision environ deux fois plus vite que les gens, a-t-il constaté. Prouver cette limite nécessitait un affichage que son équipe pouvait rafraîchir dix fois plus rapidement que les réactions qu'ils sondaient. « nous aimons la précision temporelle », dit Reiser. "cela nous rend la vie tellement plus facile."