COMPTOIR
register

La synthèse haut-niveau à la rescousse de la conception hardware ?

Nous vous parlons parfois de FPGA et autres ASIC : des puces capables d'effectuer une tâche précise (dans un cas reprogrammable, dans l'autre fixée à la conception), différant ainsi des CPU et GPU qui sont quant à eux, généralistes. Comprenez que, bien que la vitesse d'exécution soit radicalement différente selon la tâche, CPU comme GPU prennent en entrée des instructions, leur permettant ainsi de calculer n'importe quelle donnée tant que celle-ci n'est pas un fantasme mathématique.

 

Or, ces puces au design fixé n'ont pas d'équivalent pour une instruction. Des données sont prises en entrée et traitées selon une suite d'opérations logiques préétablie, qu'il faut donc concevoir. Or, décrire ce comportement au plus bas niveau - il est alors question de RTL, Register-Transfer Level - est une tâche ardue, bien plus complexe et demandeuse de réflexion que la programmation logicielle. C'est pourquoi de nombreuses entreprises ont développé (suite à des recherches publiques, soit dit en passant) des outils de synthèse haut niveau. Ces derniers, citons Vivado HLS chez Xilinx, ou Intel HLS chez Intel/Altera, permettent de compiler un programme C ou C++ (voire SystemC pour les plus aventureux) en un design de FPGA sans pour autant qu'aucune connaissance préalable ne soit nécessaire.

 

vivado hls scheme

 

Cependant, la notion d'"aucune connaissance préalable" est quelque peu irrespectée. En effet, un code C pourra être compilé normalement, mais il faudra se contenter de performances anémiques - encore faut-il que le code en question respecte les contraintes de la HLS : toutes les fonctionnalités du C ne sont pas supportées, en particulier en ce qui concerne l'arithmétique de pointeurs et l'allocation mémoire dynamique. Il faut donc annoter voire réécrire des morceaux entiers de code source pour l'adapter au périphérique cible, ce qui demande finalement de l'expertise et du temps... si bien que le code final peut ressembler fortement au RTL - que la HLS voulait éviter ! Et cela se comprend : dans une puce où la mémoire n'est pas une RAM globale et où des contraintes fortes existent sur les tailles des caches et des pipelines, difficile de tomber magiquement sur une structure de programme tirant au maximum parti de cette organisation logique à partir d'un code arbitraire.

 

Néanmoins, avec le ralentissement de la conjecture de Moore, les designs sur mesure prennent de plus en plus d'importance, y compris dans la sphère privée. Il n'y a qu'a voir les RT Cores présents dans Turing qui spécialisent ce que les cœurs généralistes CUDA ne peuvent pas faire dans les contraintes de temps inhérentes au rendu temps réel des jeux vidéos. Ou encore le Mac Pro édition râpe à fromage, qui utilise une accélération par FPGA pour le traitement vidéo.

 

De plus, la description sémantique induite par la HLS - le programmeur code ce qu'il souhaite obtenir comme résultat, et non l'architecture qui y parvient - facilite grandement les processus de validation du design, tout comme l'élaboration de prototypes. Difficile cependant de voir à court terme une co-conception efficace entre le matériel et le logiciel, ces deux camps se vouant depuis leur création une guerre pavée d’incompréhension mutuelle et de compétences radicalement opposées - autant dire qu'il faudra encore de gros progrès avant de voir des résultats applicables au grand public. (Source : SemiEngineering)

Un poil avant ?

Les spécifications de l'exFAT enfin libres : Microsoft lâche du lest

Un peu plus tard ...

L'activité cybercriminelle et l'évolution des cybermenaces en 2019 selon McAfee

Les 10 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur qui te gnome du Grand Est, le Jeudi 05 Septembre 2019 à 08h06  
C'est un mauvais exemple QUE les RT core. Les ASIC pour calculer du Raytracing le sont pour du pré-calculé ou du temps réel sur modeleur volumique. Les RT core ont une archi. considérée comme " naïve". Les performances sont médiocres. Nvidia a choisit la techno la moins chère, la moins optimisée et la moins polyvalente. Le HLS ne leur servirait strictement à rien. Ils dépendent énormément des tensors de la carte. Le tout pour emuler ce qui viendra remplacer la technologie GP-GPU, les ASSIP basé sur FPGA et GP-GPU.
par Un ragoteur sans nom embusqué, le Mardi 03 Septembre 2019 à 08h48  
par Un ragoteur blond embusqué le Mardi 03 Septembre 2019 à 05h54
Il y aura toujours des gens pour expliquer que c'est pas pareil, qu'il y a des spécificités, etc. Mais, en attendant, le Verilog est plus proche du C bas niveau que le C bas niveau ne l'est du Java.
Tu as deja fait du Verilog ou du VHDL pour dire ça ?
On appel ça des langages de description matériel, hardware description language (HDL), et ils n'ont en commun avec le C (pour Verilog) ou avec Ada (pour VHDL) que une partie de la syntaxe.
Et surtout, les paradigmes utilisés sont différent ainsi que le flow de développement.

Le C "low level", n'as donc rien de plus en commun avec le Verilog qu'avec le Java.

Donc clairement: oui ce n'est pas pareil, et ce n'est pas que quelques personnes isolées qui le disent comme tu peux le sous entendre.

PS: Le verilog est surtout majoritaire pour l'ASIC car la plupart des ASIC sont conçu au USA, on fait pas mal de FPGA en Europe ce qui fait quand même une belle base de designer VHDL sur FPGA.
par Un ragoteur blond embusqué, le Mardi 03 Septembre 2019 à 05h54  
par Un ragoteur bio d'Occitanie le Vendredi 30 Août 2019 à 16h48
Du coup peut on dire que les gens qui font du FPGA sont des "hardeux" ou des "softeux"?
Vous avez 3H.
Le FPGA est classifié comme "électronique numérique" et est rangé avec le hard.
Ce qui n'est plus forcément logique maintenant que quasiment tout en FPGA se fait directement en Verilog.
Il y aura toujours des gens pour expliquer que c'est pas pareil, qu'il y a des spécificités, etc. Mais, en attendant, le Verilog est plus proche du C bas niveau que le C bas niveau ne l'est du Java.
par Un hardeur des ragots du Centre-Val de Loire, le Samedi 31 Août 2019 à 12h11  
par Le passant qui passe en Bourgogne-Franche-Comté le Vendredi 30 Août 2019 à 14h06
Il existait un programme à la DARPA, sur une étude de processeur, le MONARCH.
C'était un processeur polymorphe: l'idée était de voir si, les unités de calculs pouvaient être reconfigurées physiquement pour faire des tâches différentes (pas quelque chose de fixé par le design de base). Le projet date de 2007, depuis... silence radio.
Ils auraient été piétinés par Godzilla ? Naaaaaaaan...

par Un ragoteur bio d'Occitanie, le Vendredi 30 Août 2019 à 19h47  
par Nicolas D. le Vendredi 30 Août 2019 à 18h57
C'est clairement plus du côté hard, vue qu'il manipulent du VHDL. Déjà, les gars des compilo c'est souvent considéré comme du hard, c'est dire ;p
Ahah entièrement d'accord, c'était une petite blague car j'ai souvent eu du mal à le faire entendre à des programmeurs ne connaissant rien au domaine ou au contraire au vieux de la vieille ne jurant que par l'analogique
par Nicolas D., le Vendredi 30 Août 2019 à 18h57  
par Un ragoteur bio d'Occitanie le Vendredi 30 Août 2019 à 16h48
Du coup peut on dire que les gens qui font du FPGA sont des "hardeux" ou des "softeux"?
Vous avez 3H.
C'est clairement plus du côté hard, vue qu'il manipulent du VHDL. Déjà, les gars des compilo c'est souvent considéré comme du hard, c'est dire ;p
par Un ragoteur bio d'Occitanie, le Vendredi 30 Août 2019 à 16h48  
Du coup peut on dire que les gens qui font du FPGA sont des "hardeux" ou des "softeux"?
Vous avez 3H.
par Ideal, le Vendredi 30 Août 2019 à 15h26  
Intéressant merci pour l'article
par Le passant qui passe en Bourgogne-Franche-Comté, le Vendredi 30 Août 2019 à 14h06  
Il existait un programme à la DARPA, sur une étude de processeur, le MONARCH.
C'était un processeur polymorphe: l'idée était de voir si, les unités de calculs pouvaient être reconfigurées physiquement pour faire des tâches différentes (pas quelque chose de fixé par le design de base). Le projet date de 2007, depuis... silence radio.
par Un médecin des ragots en Île-de-France, le Vendredi 30 Août 2019 à 13h27  
Le problème a toujours été au niveau de programmeurs informaticiens purs et leur propre marché qu'ils veulent préserver ou en créer d'autres bien encadrés. Langage spécialisé = domaine dédié pro, chasse gardée, prix qui flambent dans les contrats, salaires qui augmentent... parce qu'on peut tout penser depuis le début pour finir avec un langage usuel connu de tout le monde et un compilateur particulièrement intelligent qui se débrouille avec toutes les optimisations architecturales sur le hardware. Pour avoir été en contact à plusieurs reprises avec ce milieu j'ai pu constater à quel point des personnes stratégiques dans les projets se fixent comme objectif d'orienter les projets vers de solutions à opérateurs ultra-spécialisées.