Une boite vient de lancer un concept interrescant. Cela fait longtemps que l'on essait d'augmenter le niveau d'abstraction des langages pour que même des softeux se croit capable de coder pour du hardware (oui, je sais troll inside).
SystemC est la dernière tentative qui continue de survivre. C'est du C++ avec une librairy spécifique, et qui permet de prévoir un mix harware software.
Le nouveau concept propose de coder dans un langage, Mitrion-c, qui favorise tout de même le parrallélisme (mais qui est donc plus difficile à maitriser). L'innovation est dans le fait de ne pas essayer de traduire directement le langage en porte mais par passer par une machine abstraire qui est configurer en fonction du programme puis généré sous forme de HDL.
En gros, le compilateur créait un cpu dédié à la tache que demande le programme.
Un des gros problème pour traduire du C en hardware est la notion de mémoire/pointeur qu'il faut gérer. Pourtant en ciblant directement, un FPGA + une mémoire externe, on semble réduire le problème.
http://www.us.design-reuse.com/news/news11083.html(...)
# linux mag
Posté par fredix . Évalué à 1.
http://www.linuxmag-france.org/produit.php?produit=393(...)
ou celui là :
http://www.linuxmag-france.org/produit.php?produit=389(...)
[^] # Re: linux mag
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
"La première sécurité est la liberté"
[^] # Re: linux mag
Posté par Sylvain Briole (site web personnel) . Évalué à 1.
[^] # Re: linux mag
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
"La première sécurité est la liberté"
[^] # Re: linux mag
Posté par Matthieu Moy (site web personnel) . Évalué à 1.
[^] # Re: linux mag
Posté par fredix . Évalué à -1.
# Charabia
Posté par spell (site web personnel) . Évalué à 1.
> L'innovation est dans le fait de ne pas essayer de traduire directement le langage en porte mais par passer par une machine abstraire qui est configurer en fonction du programme puis généré sous forme de HDL.
Ca donne pas envie de comprendre ce qu'est le FPGA, HDL..
Sinon en français ca donne quoi ?
Ca doit être la différence entre les "softeux" et les "hardwareux".
Les premiers sont obligés d'utiliser des couches d'abstractions et autres formules grammaticales. Les seconds sont des génies qui parlent en phonétique et directement en langage machine.
Oups, je suis tombé dans le troll !
[^] # Re: Charabia
Posté par Sylvain Briole (site web personnel) . Évalué à 2.
> Sinon en français ca donne quoi ?
Bon, comme on me le rétorque parfois quand j'ai le malheur de ne pas comprendre une notion logicielle, un tour de Google, avec le premier résultat en francais pour FPGA :
http://www.vieartificielle.com/article/?id=104(...)
Pour HDL, c'est plus dur, faut aller chercher la 9ème entrée, les autres ayant une forte connotation biologique :
http://www.linuxfr-france.org.invalid/prj/jargonf/H/HDL.html(...)
[^] # Re: Charabia
Posté par Nicolas Boulay (site web personnel) . Évalué à 6.
RTFM !
"La première sécurité est la liberté"
[^] # Re: Charabia
Posté par spell (site web personnel) . Évalué à -3.
Et voici le manuel : http://www.amazon.fr/exec/obidos/ASIN/2011689821/qid=1123696297/sr=(...)
# Benchmarks?
Posté par Sylvain Briole (site web personnel) . Évalué à 3.
Ok, pouvoir convertir un code assembleur d'un RISC (pour rester dans un truc "simple") directement en portes logiques pour un FPGA ou tout autre CPLD présente un avantage certain, mais quid du gain de performance par rapport au même code en assembleur exécuté sur un bon vieil ASIC bien concu (comprendre, minimaliste et limite dédié à cette tâche)?
Certes, on perd le degré de liberté de la reprogrammation, et donc une partie des possibilités offertes par ce genre de plateforme, mais je ne sais pas (je serais curieux de connaître des applications où cela pourrait être utiles) s'il y a beaucoup d'applications qui ne puissent être bien optimisées en se basant sur un bon RISC/CISC plus un ou plusieurs DSP périphérique(s), tout ce petit monde travaillant à une tâche bien particulière en parallèle.
[^] # Re: Benchmarks?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Le but n'est absolument pas de remplacer le développement d'asic. Un asic de compression d'image sera toujours plus rapide qu'une version soft ou qu'une version FPGA.
Mais il ne te viendrais jamais à l'idée d'essayer de faire rentrer GNU chess dans un asic. Or des téchniques comme celle montrer pourait le faire.
Le FPGA est "juste" vu comme un cpu complexe et tordu. La machine "abstraite" doit être d'assez haut niveau pour pouvoir accélerer correctement le code, se baser sur un pauvre RISC voir même un vliw ne doit pas être super interrescant.
Dans l'article, il précise que les netlist générés sont 2 à 10 fois plus grosses qu'un truc optimisé à la main. Mais évidement, le temps de développement et la compétence des codeurs est largement inférieur.
"La première sécurité est la liberté"
[^] # Re: Benchmarks?
Posté par Sylvain Briole (site web personnel) . Évalué à 2.
Oky, on est d'accord.
Mais il ne te viendrais jamais à l'idée d'essayer de faire rentrer GNU chess dans un asic.
Effectivement : non, à moins d'avoir quelques années devant moi ;-).
Or des téchniques comme celle montrer pourait le faire.
Mais je me pose la question de l'intérêt : je ne suis pas un spécialiste des échecs (loin de là), mais je me doute que les algorithmes qui régissent les stratégies envisageables pour ces derniers sont "réductibles" et "ciblables" par un humain qui analyse son code, et il est éventuellement ensuite possible de les implémenter en les optimisant (toujours avec l'intervention humaine) sur un processeur de calcul dédié, pas forcément "reprogrammable" comme l'est le FPGA.
Certes, l'intérêt du FPGA réside dans le fait qu'on peut, pour GnuChess, y implémenter une fonction de calcul dédiée, et ensuite en implémenter une autre pour, par exemple, le calcul 3D pour un autre jeu, ou ... (encore que je me pose la question de la limite sur un ordinateur à vocation généraliste, et qui plus est : multitâche), mais dans ce cas pourquoi avoir besoin du C ou d'un autre traducteur d'assembleur vers "portes logiques" : on peut très bien imaginer fournir directement le .sof/.pof (je ne connais que les FPGA Altera) en complément du programme en langage machine pour le processeur RISC/CISC central.
Pour moi, l'intérêt du C/ASM->portes logiques réside dans le fait de permettre d'économiser l'apprentissage d'un langage de description matériel du type VHDL/Verilog et des outils associés à ceux/celles qui auraient déjà une maîtrise d'un langage de haut niveau du genre C ("haut niveau" : tout est relatif, mais au niveau matériel, c'est du haut niveau...).
[^] # Re: Benchmarks?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: Benchmarks?
Posté par Jimmy . Évalué à 5.
Maintenant on peut faire de la "reconfiguration partielle" de FPGA, même en cours de fonctionnement. C'est pas simple, y'a des contraintes de conception, mais ca permet d'avoir plusieurs coprocesseurs dédiés pour le prix d'un, à condition de ne pas les utiliser au même moment. A ma connaissance, il n'y a pas besoin de System C pour ca.
Hmm, je ne suis pas de cet avis. Un très bon softeux qui maîtrise le C/C++ sur le bout des doigts peut être un mauvais développeur *HDL, et inversement. Les subtilités de syntaxe sont à mon avis secondaires (le VHDL ressemble un peu à ADA ou Pascal, avec des begin/end), il s'agit plutôt d'une approche différente de la conception. Cela nécessite une bonne connaissance électronique, notamment pour les gestions d'horloges, les timings et synchonisations, l'allocation des ressources, la maîtrise d'un "style" facilement optimisable par les outils, et surtout le découpage du problème en modules parallèles. Ce ne sont pas des choses qu'on apprend en faisant "juste" du logiciel.
Ajouter les notions de parallèlisme et d'horloge au C, ca revient à refaire un autre langage HDL [hardware description langage], juste avec une syntaxe plus répandue.
Mais là où ca a un vrai intérêt, c'est dans une démarche de codesign. Souvent, au début de la définition d'un produit, les choix de répartition entre le soft etle hard sont faits de manière très arbitraire, alors que les algorithmes à implémenter ne sont pas encore bien définis ... Avec un langage mixte (hard+soft), on peut commencer à développer l'application, et la co-simuler, avant d'avoir figé l'architecture de traitement. On peut ensuite choisir son CPU, DSP, FPGA ou ASIC en connaissance de cause, selon les performances attendues. Le gros avantage, c'est que dans la phase de codage tout le monde bosse ensemble, en même temps : pas besoin d'attendre que le hardware soit validé pour commencer le soft, on gagne du temps.
De toute façon, pour suivre l'évolution de la complexité des puces on va vers des niveaux d'abstraction de plus en plus élevés : tout comme on est passé du langage machine à l'assembleur, puis au langage compilé et ensuite aux langages objets interprétés, pour le design de puces on est passé du dessin de masques aux schémas de portes logiques, puis au HDL et à la réutilisation de modules fonctionnels (IP). Avec à chaque étape un gain de productivité, au prix d'une moins bonne optimisation. D'ailleurs, aucune des vieilles techniques n'est complètement abandonnée, elle est juste réservée aux éléments les plus sensibles. La prochaine étape, dont on parle ici, ne sera certainement pas la dernière ...
Un autre aspect de la convergence entre le matériel et le logiciel, c'est l'intégraton de plus en plus poussée des différentes technologies électroniques dans une seule grosse puce. Il y a par exemple les Virtex4 de Xilinx, FPGA intégrant un ou deux processeurs PowerPC 405, ou bien les modules VHDL ayant une fonction de processeur comme le Nios ou le MicroBlaze (qui suportent tous les deux µCLinux). A l'inverse, ST vient de sortir des processeurs pour station de base 3G qui contiennent un CPU, un DSP, ... et un petit FPGA. http://www.st.com/stonline/prodpres/dedicate/wsinfra/digital/dsp.ht(...)
Pour revenir sur le sujet du journal, il s'agit apparemment d'un paramétrage automatique de processeur, selon le code à exécuter, le tout implémenté en FPGA. J'imagine qu'il y a une grosse collection de modules de calcul tout faits en HDL, qui sont assemblés pour paralléliser au maximum un algo donné. Sinon je ne vois pas comment ils font pour traduire 180 lignes de "Mitrion-c" en 150,000 lignes de VHDL. Reste à voir si le gain de temps de développement est tel qu'il vaut une perte de ressources de 50% ...
[^] # Re: Benchmarks?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: Benchmarks?
Posté par TheBreton . Évalué à 2.
Le deux ne sont pas comparable, pour imager mon exemple, ecris en C une FastFourrierTransform ou une operation SINUS par DL, en code RISC ou CISC assembleur peut importe, et tente de comparer ca avec un composant qui te fait la meme chose en N cycle de l'horloge micro (N etant la limite de ton dl ou de la taille de ta table fft).On se rend parfaitement compte que la realisation cablé en dur est plus rapide d'un facteur 10 minimum.
Certes, on perd le degré de liberté de la reprogrammation, et donc une partie des possibilités offertes par ce genre de plateforme, mais je ne sais pas (je serais curieux de connaître des applications où cela pourrait être utiles) s'il y a beaucoup d'applications qui ne puissent être bien optimisées en se basant sur un bon RISC/CISC plus un ou plusieurs DSP périphérique(s), tout ce petit monde travaillant à une tâche bien particulière en parallèle.
Dans l'absolu tu as raison, en elevant la frequence et le nombre de core on peut arrivé a faire la meme chose. Mais d'un point de vue economique ca ne tiens pas . Un circuit generaliste (DSP ou CPU) utilisé a une fin précise sera sous-utilisé (il y a plein de truc qui ne servent a rien pour cette utilisation et qui sont sur le silicium) et au final revient plus cher qu'un circuit specialisé dédié. Exemple : dans un PC la carte graphique est a base d'asic ou de fpga plutot que de core cpu/dsp.
[^] # Re: Benchmarks?
Posté par un_brice (site web personnel) . Évalué à 1.
Moi j'y connais rien, mais peut être que ça te permetras de te faire une idée du gain de performance que l'on peut obtenir par rapport à des logiciels équivalents.
http://openciphers.sourceforge.net/(...)
En tout cas, c'est un projet intéressant.
[^] # Re: Benchmarks?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: Benchmarks?
Posté par patrick_g (site web personnel) . Évalué à 2.
http://www.via.com.tw/en/initiatives/padlock/hardware.jsp(...)
[^] # Re: Benchmarks?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
VIA pourrait partir sur ce chemin plutot que de chercher à faire un énorme coeur obèse.
"La première sécurité est la liberté"
# Il y a bien mieu
Posté par Guillaume D. . Évalué à 1.
puisque l'on en est au concept des CPU / FPGA et autre :
a lire l'excellent travail de Steve Bush : le WIZ processor
http://www.steve.bush.org/WizdomR&D/index.html(...)
bonne lecture.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.