Auteur Sujet: Bientot les FPGA dans les ordinateurs  (Lu 110801 fois)

0 Membres et 2 Invités sur ce sujet

Hors ligne alex

  • Noob
  • **
  • Messages: 159
    • Voir le profil
Re : Bientot les FPGA dans les ordinateurs
« Réponse #50 le: 04 janvier 2011 à 19:12:47 »
Effectivement 5Go/s est peu... Je pense que c'est une faute de frappe.
Tu parles de GPU, architecture, optimisation des calculs.
Cependant quoique tu dises, la brique de base en électronique numérique reste la porte logique (et non le transistor!).
Tous système que ce soit un CPU, un GPU ou autre est décomposé en porte logique. Maintenant si l'on pousse la réflexion si je prends le RTL (description du processeur en langage VHDL ou Verilog) d'un GPU et que je l'intègre dans un FPGA, quel sera la différence? (A fréquence équivalente bien sur (commutation des transistors+ fréquence du pipeline)!)
La réponse est à peu près les mêmes performances à quelques latence près car le fpga n'est pas optimisé (au niveau des interconnexions)... Je rappelle que les fpga dispose désormais de blocs de calcul optimisés donc à fréquence équivalente le cycle de calcul peut être identique entre un FPGA ou un quelconque DSP (processeurs dédiés au calcul)...
Maintenant si je prends un GPU vs un FPGA et que je calcule une FFT et que j'inverse le résultat ou autre calcul complexe, qui crois tu être le plus rapide?
Un composant qui possèdent une rapidité de calcul ou un composant capable de décomposer une tache complexe en de nombreuses taches simples qu'il pourra effectuer en parallèle?


« Dernière modification: 05 janvier 2011 à 10:40:49 par alex »

Hors ligne alex

  • Noob
  • **
  • Messages: 159
    • Voir le profil
l
« Réponse #51 le: 05 janvier 2011 à 13:13:25 »
J'ai trouvé une publi scientifique sur le site IEEE intitulé "A design Case study: CPU vs GPGPU vs FPGA" écrit par Daniel L. Rosenband. Bon je ne peux la mettre en ligne car l'accès au site IEEE est payant... (Je sais, ce n'est pas une bonne preuve)
Pour ceux qui ont un accès IEEE: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=05185380

Cependant je m'appuie cette fois-ci non seulement sur mes connaissances mais sur les connaissances d'un chercheur du MIT (donc il est loin d'être idiot...).
Dans cet article est décrit l'utilisation des CPU et GPU ainsi que des FPGAs.
Le but de son calcul est de transformer chaque point d'une grille cartésienne en grille polaire (si j'ai bien compris), bref c'est juste le calcul qui est fait et qui n'importe peu.
Ses résultats montre que les GPU (NVIDIA GTX285) sont nettement meilleur que le CPU (Intel core i7 3.2GHz).
Il utilise 2 FPGAs : le Virtex II Pro et le Virtex 5. Le Virtex 5 possède nettement plus de logique, plus de mémoire dédié, plus de blocs de calcul et des rocket I/O pour le transfert rapide que ne dispose pas le Virtex II pro.
Résultat... Bon le Virtex II Pro (Qui doit avoir 8 ans) est à la ramasse 10 fois plus lent que le CPU. Mais en revanche le VIRTEX 5 STX est 2 fois meilleur que le GPU sauf au niveau du temps de transfert dans la mémoire et 6 fois plus rapide que le CPU... Pour le temps de transfert, il est normal qu'il soit plus long dans un FPGA, ceci est du aux temps transfert entre les blocs logique (interconnexions) à l'intérieur de celui-ci.

En regardant de plus près on s'aperçoit pourtant que la fréquence de fonctionnement du GPU est 2 fois plus petite que celle du CPU et 3 fois plus grande que celle du FPGA... Et toc dans les dents les pro de l'overclocking qui s'amuse à augmenter les fréquences!!!

Donc l'évolution du CPU est le GPU... et l'évolution du GPU est le FPGA...  :mua:   5:
« Dernière modification: 05 janvier 2011 à 14:09:07 par alex »

Hors ligne flo

  • Administrateur
  • Campeur
  • *****
  • Messages: 4590
  • Zhong : L'équilibre parfait
    • Voir le profil
    • Hardware-Specs.net
  • Chipset: AMD 890G
  • CPU: PhenomII X6 1055T
  • GPU: Radeon HD5770
Re : l
« Réponse #52 le: 05 janvier 2011 à 16:09:11 »
J'ai trouvé une publi scientifique sur le site IEEE intitulé "A design Case study: CPU vs GPGPU vs FPGA" écrit par Daniel L. Rosenband. Bon je ne peux la mettre en ligne car l'accès au site IEEE est payant... (Je sais, ce n'est pas une bonne preuve)
Pour ceux qui ont un accès IEEE: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=05185380

Cependant je m'appuie cette fois-ci non seulement sur mes connaissances mais sur les connaissances d'un chercheur du MIT (donc il est loin d'être idiot...).
Dans cet article est décrit l'utilisation des CPU et GPU ainsi que des FPGAs.
Le but de son calcul est de transformer chaque point d'une grille cartésienne en grille polaire (si j'ai bien compris), bref c'est juste le calcul qui est fait et qui n'importe peu.
Ses résultats montre que les GPU (NVIDIA GTX285) sont nettement meilleur que le CPU (Intel core i7 3.2GHz).
Il utilise 2 FPGAs : le Virtex II Pro et le Virtex 5. Le Virtex 5 possède nettement plus de logique, plus de mémoire dédié, plus de blocs de calcul et des rocket I/O pour le transfert rapide que ne dispose pas le Virtex II pro.
Résultat... Bon le Virtex II Pro (Qui doit avoir 8 ans) est à la ramasse 10 fois plus lent que le CPU. Mais en revanche le VIRTEX 5 STX est 2 fois meilleur que le GPU sauf au niveau du temps de transfert dans la mémoire et 6 fois plus rapide que le CPU... Pour le temps de transfert, il est normal qu'il soit plus long dans un FPGA, ceci est du aux temps transfert entre les blocs logique (interconnexions) à l'intérieur de celui-ci.

En regardant de plus près on s'aperçoit pourtant que la fréquence de fonctionnement du GPU est 2 fois plus petite que celle du CPU et 3 fois plus grande que celle du FPGA... Et toc dans les dents les pro de l'overclocking qui s'amuse à augmenter les fréquences!!!

Donc l'évolution du CPU est le GPU... et l'évolution du GPU est le FPGA...  :mua:   5:
Je me suis trompé hier : C'est pas 3To/s mais 3Tflops. Bref même en divisant par 8, toujours supérieur et un CPU x86 haut de gamme développe dans les 100Gflops environ (petit exemple à l'appui). En tout cas j'insisterai sur les 2 points en rouge.
Bien sûr que OUI, le type de calcul est important et ce que tu utilises aussi (c'est ce qu'on appelle l'optimisation). Sur du calcul en texel (calcul par rasterisation) : Un CPU atteint les 5 GT/s, là où un GPU équivalent atteint les 50GT/s. Soit 10 fois supérieur, c'est loin du 3 fois plus que tu annonces pour l'écart entre CPU et GPU.
Mis à part cet exemple, il y a aussi les calculs arithmétiques simples, les calculs en virgule flottante (quelle limite on prend ? 32/64/128 bits ?) et surement d'autres que j'oublie.
Sur calcul en virgule flottante on est à presque 30 fois supérieur (presque 3Tflops par les unités de shaders pour le GPU et 100Gflops pour le CPU). Encore une fois, c'est loin du 3 fois plus que tu annonces.

D'autres part, une GTX285 est clairement pas un bon choix pour ce genre de test en calcul arythmétique. Même NV ne met pas ce genre de GPU dans les supercalculateurs (car très orienté calcul sur textures) et même les Tesla (GPU NV pour supercalculateur) n'ont pas l'étoffe pour avoir un bon rendement par GPU. Le seul point pour lequel e GPU a été choisi est essentiellement qu'il supporte CUDA, manière la plus simple d'éviter le langage assembleur quand on y connait rien.

Voici les petites erreurs que j'ai noté sur le matériel. Maintenant passons au logiciel. Pour mesurer, ces différences je suppose que le mec a utilisé un programme de test qui fait office de benchmark. Est ce que le FPGA possède les registres suffisants pour supporter un programme en langage C ? Le GPU choisi supporte CUDA (plus connu sous le langage Cg, qui est une librairie d'extension du C englobant les instructions assembleurs). Quoiqu'il en soit le programme d'exécution ne sera pas le même sur CPU, GPU et FPGA. Quand à dire que CUDA est fiable (matériellement comme logiciellement), aujourd'hui il est grandement remis en cause puisque PhysX semble partir aux oubliettes dans beaucoup d'applications. Cela devient donc injustifié de dire :
Citation
This result was reached after a short design-cycle of 2 man-days, which indicates that the NVIDIA CUDA platform allows for rapid development and optimization of applications that make substantial use of all available GPGPU computing resources

En plus, développer en 2 jours avec toutes les optimisations nécessaires et toutes les réflexions sur le plan matériel comme logiciel que la conception de ce genre de test amène, c'est vraiment n'importe quoi (raison de plus s'il est au MIT).
« Dernière modification: 05 janvier 2011 à 17:35:22 par flo »
Innovation : maître mot du monde hardware!

Hors ligne alex

  • Noob
  • **
  • Messages: 159
    • Voir le profil
Re : Re : l
« Réponse #53 le: 05 janvier 2011 à 19:42:03 »
J'ai trouvé une publi scientifique sur le site IEEE intitulé "A design Case study: CPU vs GPGPU vs FPGA" écrit par Daniel L. Rosenband. Bon je ne peux la mettre en ligne car l'accès au site IEEE est payant... (Je sais, ce n'est pas une bonne preuve)
Pour ceux qui ont un accès IEEE: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=05185380

Cependant je m'appuie cette fois-ci non seulement sur mes connaissances mais sur les connaissances d'un chercheur du MIT (donc il est loin d'être idiot...).
Dans cet article est décrit l'utilisation des CPU et GPU ainsi que des FPGAs.
Le but de son calcul est de transformer chaque point d'une grille cartésienne en grille polaire (si j'ai bien compris), bref c'est juste le calcul qui est fait et qui n'importe peu.
Ses résultats montre que les GPU (NVIDIA GTX285) sont nettement meilleur que le CPU (Intel core i7 3.2GHz).
Il utilise 2 FPGAs : le Virtex II Pro et le Virtex 5. Le Virtex 5 possède nettement plus de logique, plus de mémoire dédié, plus de blocs de calcul et des rocket I/O pour le transfert rapide que ne dispose pas le Virtex II pro.
Résultat... Bon le Virtex II Pro (Qui doit avoir 8 ans) est à la ramasse 10 fois plus lent que le CPU. Mais en revanche le VIRTEX 5 STX est 2 fois meilleur que le GPU sauf au niveau du temps de transfert dans la mémoire et 6 fois plus rapide que le CPU... Pour le temps de transfert, il est normal qu'il soit plus long dans un FPGA, ceci est du aux temps transfert entre les blocs logique (interconnexions) à l'intérieur de celui-ci.

En regardant de plus près on s'aperçoit pourtant que la fréquence de fonctionnement du GPU est 2 fois plus petite que celle du CPU et 3 fois plus grande que celle du FPGA... Et toc dans les dents les pro de l'overclocking qui s'amuse à augmenter les fréquences!!!

Donc l'évolution du CPU est le GPU... et l'évolution du GPU est le FPGA...  :mua:   5:
Je me suis trompé hier : C'est pas 3To/s mais 3Tflops. Bref même en divisant par 8, toujours supérieur et un CPU x86 haut de gamme développe dans les 100Gflops environ (petit exemple à l'appui). En tout cas j'insisterai sur les 2 points en rouge.
Bien sûr que OUI, le type de calcul est important et ce que tu utilises aussi (c'est ce qu'on appelle l'optimisation). Sur du calcul en texel (calcul par rasterisation) : Un CPU atteint les 5 GT/s, là où un GPU équivalent atteint les 50GT/s. Soit 10 fois supérieur, c'est loin du 3 fois plus que tu annonces pour l'écart entre CPU et GPU.
Mis à part cet exemple, il y a aussi les calculs arithmétiques simples, les calculs en virgule flottante (quelle limite on prend ? 32/64/128 bits ?) et surement d'autres que j'oublie.
Sur calcul en virgule flottante on est à presque 30 fois supérieur (presque 3Tflops par les unités de shaders pour le GPU et 100Gflops pour le CPU). Encore une fois, c'est loin du 3 fois plus que tu annonces.

D'autres part, une GTX285 est clairement pas un bon choix pour ce genre de test en calcul arythmétique. Même NV ne met pas ce genre de GPU dans les supercalculateurs (car très orienté calcul sur textures) et même les Tesla (GPU NV pour supercalculateur) n'ont pas l'étoffe pour avoir un bon rendement par GPU. Le seul point pour lequel e GPU a été choisi est essentiellement qu'il supporte CUDA, manière la plus simple d'éviter le langage assembleur quand on y connait rien.

Voici les petites erreurs que j'ai noté sur le matériel. Maintenant passons au logiciel. Pour mesurer, ces différences je suppose que le mec a utilisé un programme de test qui fait office de benchmark. Est ce que le FPGA possède les registres suffisants pour supporter un programme en langage C ? Le GPU choisi supporte CUDA (plus connu sous le langage Cg, qui est une librairie d'extension du C englobant les instructions assembleurs). Quoiqu'il en soit le programme d'exécution ne sera pas le même sur CPU, GPU et FPGA. Quand à dire que CUDA est fiable (matériellement comme logiciellement), aujourd'hui il est grandement remis en cause puisque PhysX semble partir aux oubliettes dans beaucoup d'applications. Cela devient donc injustifié de dire :
Citation
This result was reached after a short design-cycle of 2 man-days, which indicates that the NVIDIA CUDA platform allows for rapid development and optimization of applications that make substantial use of all available GPGPU computing resources

En plus, développer en 2 jours avec toutes les optimisations nécessaires et toutes les réflexions sur le plan matériel comme logiciel que la conception de ce genre de test amène, c'est vraiment n'importe quoi (raison de plus s'il est au MIT).

Attention Flo je parle de rapidité (temps de calcul) et non de quantité de calcul!!
Attention encore : Sur un FPGA le nombre de calcul/s dépend du design que tu mets dans le FPGA, prenons un petit exemple si je prends le même FPGA que lui (480I/O). Je design 1 signal d'entrée 479 sorties, avec à l'intérieur 479 porte NON=> Résultat j'ai 479 bits calculés/ cycle d'horloge!!! Et là j'explose ton nombre de Tflop/s sans forcé sur l'horloge!  owned
Je dis que peu importe la complexité du calcul, tant que tu compares la même chose. Je suis conscients que suivant le type de calcul (signed, unsigned, FFT, multiplication, racine, puissance...) on obtiendra des résultats différents en fonction du composant. Pourquoi??? Son architecture et la façon dont il a été conçu (en dur sur le silicium)!!

Ensuite tu parles du composant de Nvidia, bon là j'avoue que je ne suis pas comme vous, je ne regarde pas les classements meilleurs chipsets graphique... A vrai dire je m'en fou un peu!!
Cependant tu m'indiques que le GPU utilisé par le chercheur n'est pas le meilleurs (apparemment loin de là)... Maintenant voici ma réponse, l'article à été écrit en mi-2009, le temps de penser à la manip, la concevoir... minimum 6 mois. Il a du prendre les composants qu'il connaissait sur le marché!
Tu te plains des perfs de ton GPU, laisse moi me plaindre alors du choix du FPGA! Pourquoi il n'a pas prit la version supérieur (voir premier message qui à ouvert ce sujet de discussion). Fréquence 3x plus élevé, plus de logique, plus de blocs mathématiques, plus de mémoire!!!!

Maintenant passons à ta réponse pour le logiciel! Bon j'avoue je ne suis pas un dieu en programmation...
Mmmmh qu'appelles tu registres pour le langage C? Parce que là moi je suis perdu!
J'ignorais devoir rappeler que le langage de programmation (peu importe le langage), celui ci est traduit en assembleur qui lui est traduit en données numériques... Bizarrement quand tu lances: if (A==0 AND B!=A) dans le pipeline tel quel. Je ne sais pas pourquoi mais si tu ne le traduis pas, il n'y arrive pas!! Grand scoop pour tous les informaticiens!!!
Effectivement il a prit ce composant car il peut le programmer facilement et franchement avec un langage assembleur (ou presque) par composant on se rend vite compte que l'on ne peut pas toujours programmer en assembleur! Perso je connais une dizaine de processeurs mais seulement 3 langages assembleur... Parce que la différence avec toi c'est que nous ne sommes pas payer uniquement pour programmer, on doit faire tout ce qu'il y a autour!!
Tu dis que le code sera différent en fonction du composant, sans blague!! et pourquoi? Mince je l'ai dit juste au dessus (pas le même langage assembleur).
Voir même si l'on se débrouille bien avec le FPGA on a même pas besoins de code assembleur! Bon le hic c'est que l'on sera bloqué pour faire les mêmes calculs tout le temps... Enfin après on peut parler de reconfiguration dynamique qui consiste à reconfigurer une partie du FPGA alors qu'il est en fonctionnement (technique difficile à maitriser)...


Hors ligne flo

  • Administrateur
  • Campeur
  • *****
  • Messages: 4590
  • Zhong : L'équilibre parfait
    • Voir le profil
    • Hardware-Specs.net
  • Chipset: AMD 890G
  • CPU: PhenomII X6 1055T
  • GPU: Radeon HD5770
Re : Re : Re : l
« Réponse #54 le: 05 janvier 2011 à 20:26:02 »
Je crois qu'il y a un peu de quiproquos :
Attention Flo je parle de rapidité (temps de calcul) et non de quantité de calcul!!
Attention encore : Sur un FPGA le nombre de calcul/s dépend du design que tu mets dans le FPGA, prenons un petit exemple si je prends le même FPGA que lui (480I/O). Je design 1 signal d'entrée 479 sorties, avec à l'intérieur 479 porte NON=> Résultat j'ai 479 bits calculés/ cycle d'horloge!!! Et là j'explose ton nombre de Tflop/s sans forcé sur l'horloge!  owned
OK. C'est les infos en terme de chiffre qui manquait.

Je dis que peu importe la complexité du calcul, tant que tu compares la même chose. Je suis conscients que suivant le type de calcul (signed, unsigned, FFT, multiplication, racine, puissance...) on obtiendra des résultats différents en fonction du composant. Pourquoi??? Son architecture et la façon dont il a été conçu (en dur sur le silicium)!!
Tout à fait c'est exactement ce que je souligne plus haut! (3)

Ensuite tu parles du composant de Nvidia, bon là j'avoue que je ne suis pas comme vous, je ne regarde pas les classements meilleurs chipsets graphique... A vrai dire je m'en fou un peu!!
Cependant tu m'indiques que le GPU utilisé par le chercheur n'est pas le meilleurs (apparemment loin de là)... Maintenant voici ma réponse, l'article à été écrit en mi-2009, le temps de penser à la manip, la concevoir... minimum 6 mois. Il a du prendre les composants qu'il connaissait sur le marché!
Tu te plains des perfs de ton GPU, laisse moi me plaindre alors du choix du FPGA! Pourquoi il n'a pas prit la version supérieur (voir premier message qui à ouvert ce sujet de discussion). Fréquence 3x plus élevé, plus de logique, plus de blocs mathématiques, plus de mémoire!!!!
OK. Aujourd'hui, vu l'évolution du matériel et des API compatible, c'est effectivement pas un bon choix. (2)

Maintenant passons à ta réponse pour le logiciel! Bon j'avoue je ne suis pas un dieu en programmation...
Mmmmh qu'appelles tu registres pour le langage C? Parce que là moi je suis perdu!
Laisse tomber. Certains CPU sont capable de traduire directement certains langages mais en général une phase de compilation est nécessaire (dans quelle limite ???).

J'ignorais devoir rappeler que le langage de programmation (peu importe le langage), celui ci est traduit en assembleur qui lui est traduit en données numériques... Bizarrement quand tu lances: if (A==0 AND B!=A) dans le pipeline tel quel. Je ne sais pas pourquoi mais si tu ne le traduis pas, il n'y arrive pas!! Grand scoop pour tous les informaticiens!!!
Effectivement il a prit ce composant car il peut le programmer facilement et franchement avec un langage assembleur (ou presque) par composant on se rend vite compte que l'on ne peut pas toujours programmer en assembleur! Perso je connais une dizaine de processeurs mais seulement 3 langages assembleur... Parce que la différence avec toi c'est que nous ne sommes pas payer uniquement pour programmer, on doit faire tout ce qu'il y a autour!!
Oui, c'est ce qu'on appelle la compilation. Une traduction du code en langage machine. Souvent des instructions proches de l'assembleur facilite grandement la traduction de l'instruction. Pour des langages de haut niveau on passe par une phase de bytecode qui n'a rien à voir avec le langage machine. Certains processeurs sont tout de même capable de faire la traduction directement. (2)

Tu dis que le code sera différent en fonction du composant, sans blague!! et pourquoi? Mince je l'ai dit juste au dessus (pas le même langage assembleur).
Voir même si l'on se débrouille bien avec le FPGA on a même pas besoins de code assembleur! Bon le hic c'est que l'on sera bloqué pour faire les mêmes calculs tout le temps...
C'est exactement la remarque que je voulais que tu aies. (1)

Enfin après on peut parler de reconfiguration dynamique qui consiste à reconfigurer une partie du FPGA alors qu'il est en fonctionnement (technique difficile à maitriser)...
Ca c'est intéressant!

Je te fais une petite synthèse sous forme de questions en fonction des réponses que tu m'as faites.
Ta ou tes réponses associées (X) ----> ma question X).
1) Comment être sur que chaque langage utilisé pour chaque composant avantage bien ce composant et dans quelle limite (problématique majeure d'un benchmark) ?
2) Comment être sûr que chaque programme sur chaque composant  (CPU, GPU, FPGA) est bien optimisé pour ce composant ?
3) Comment être sûr que le calcul lancé sur chacun des composants n'est pas orienté pour avoir des résultats faussés en faveur de l'un ou l'autre des composants ?
« Dernière modification: 06 janvier 2011 à 10:12:35 par flo »
Innovation : maître mot du monde hardware!

Hors ligne alex

  • Noob
  • **
  • Messages: 159
    • Voir le profil
Re : Re : Re : Re : l
« Réponse #55 le: 06 janvier 2011 à 13:20:08 »
Je te fais une petite synthèse sous forme de questions en fonction des réponses que tu m'as faites.
Ta ou tes réponses associées (X) ----> ma question X).
1) Comment être sur que chaque langage utilisé pour chaque composant avantage bien ce composant et dans quelle limite (problématique majeure d'un benchmark) ?
2) Comment être sûr que chaque programme sur chaque composant  (CPU, GPU, FPGA) est bien optimisé pour ce composant ?
3) Comment être sûr que le calcul lancé sur chacun des composants n'est pas orienté pour avoir des résultats faussés en faveur de l'un ou l'autre des composants ?

Tes questions sont très intéressantes.
1) Selon moi le langage assembleur est le plus proche du matériel, puisqu'on est pas censé avoir des problèmes de compilateur (les compilateurs génère plus ou moins de lignes de codes assembleur). En système embarqué suivant les contraintes de temps (mesures, transfert...), on établit des sous fonctions directement écrite en assembleur ceci pour avantager le composant et faire juste ce qu'il faut et ainsi éliminer le code superflue que peut générer le compilateur... Généralement on détermine si le code est optimisé en regardant le temps d'exécution d'une période de l'application. On réitère les modification jusqu'à atteindre un minimal.
Après ne tombons pas dans l'excès comme certain, il n'est pas très utile de programmer directement en héxadécimal!!

2) Ca je ne serait pas dire puisque ca dépend de l'architecture même du composant. Par exemple le temps d'une multiplication peu prendre n cycle machine, est-il judicieux de dire que si le nombre à multiplier i<n alors il serait mieux de faire une addition itérative du résultat!! Les Gains sont difficilement quantifiable, car cela dépend de ton proc!
En ce qui concerne le FPGA, il y a des algorithmes d'optimisation du Placement/Routage (P/R) qui génère un design optimiser sur la matrice FPGA. C'est à dire qu'une donnée qui doit être traiter ne doit pas traverser entièrement la matrice du FPGA pour être traitée.
Il faudrait effectivement intégrer un processeur dans le processeur pour estimer le cout d'une solution afin de déterminer celle qui serait optimale pour chaque calcul mais ce sera dure...

3) Arf, l'égalité des chances n'existe pas puisque la perfection n'existe pas...

De toute façon ne pleure pas flo je t'avais prévenu il y a 4 ans (date du premier poste 2007) que les FPGA était nettement plus puissant!!  MDR
En ce qui concerne la reconfiguration dynamique c'est très dur à gérer puisque tu dois utiliser des signaux de contrôle pour activer ou non la reconfiguration, exemple: tu fais une tache et tu dis fin de la tache tel signal à '1' active la reconfiguration. Ou sinon tu peux faire un genre de timeout, tu estime le cout en temps de la tache et tu comptes... (en espérant que tu ne te sois pas trompé dans la valeur du timeout, sinon...)
Je mettais un peu penché dessus mais j'avoue que c'est complexe car à chaque tache tu dois lui affecter qu'une partie de la matrice, tu perds les I/O que tu dois réatribuer...
« Dernière modification: 06 janvier 2011 à 22:09:29 par alex »