Forum: FPGA, VHDL & Co. Suche Anregung für Projektansatz


von Schwerionenbeschleuniger aus Darmstadt (Gast)


Lesenswert?

Ich brauche (für eine Forschungsarbeit) ein Simulationssystem, das mir 
in Echtzeit mathematische Schätzungen und Berechungen durchführt, 
welches aber auch in der Lage ist, die errechneten Werte und Kennzahlen 
mit Messungen zu vergleichen. Das Ziel ist der Abgleich eines Modells 
zur Steigerung der Vorraussagbarkeit des Verhaltens von geladenen 
Teilchen in elektrischen und magnetischen Feldern.

Die Formeln und Modelle sind vorhanden, bzw in Entstehung und nun geht 
es an die Realisation. Wie realsiert man sowas am Besten: Ich dachte 
bisher an einen PC, der mitrechnet und die Ergebnisse updated. Ich habe 
auch in der Programmiersprache C sowie in Matlab Beispielrechnungen dazu 
gemacht.

Die Modelle sind nicht all zu aufwändig und rechenintensiv, trotzdem 
ergibt eine Überschlagskalkulation, daß mit einem schnellen Pc die 
Berechung im Bereich von 100-200 Ergebnissen je Sekunde liegen kann, was 
viel zu grob wäre, um damit etwas anzufangen.

Leider sind meine finanziellen Mittel und auch die Zeit begrenzt, sodaß 
ich mir kein Rechenzentrum mieten kann, welches die 1000fache 
Rechenleistung aufbringen könnte. Ich habe aber auch sonst keine 
bezahlbare DSP-Plattform gefunden, die genug FLOPs (oder wie es heisst) 
hätte, um da auch nur annährend hinzukommen.

Nun kann man ja C in FPGA-HDL übersetzen oder auch MATLAB das tun lassen 
und das ganze in ein FPGA bringen. Ein FPGA hätte den Vorteil, daß viele 
Additionen und Vergleiche (Wege durch das Entscheidungssystem) parallel 
und in einem Clock-Takt laufen könnte, was das ganze sehr viel schneller 
machen sollte. Man bräcchte dann wohl  ein großes FPGA (oder mehrere) 
und eine Verbindung zum PC, der die Daten abspeichert.

Kann man soetwas kaufen? Wie kommt man an eine Plattform hern, die 
soetwas kann und nur noch programmiert werden muss?

Tipps erbeten - vielen Dank.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Bei Vektorrechnungen in Floating Point haben Grafikkarten und die 
Playstation 3 (Cell-CPU) ein sehr gutes Preis-/Leistungsverhältnis. Bei 
anderen Dingen sind FPGAs besser. Um welche Art von Berechnungen geht es 
denn?

von Gerard C. (gerardchoinka)


Lesenswert?

Wenn sich das Problem Paralliesiern läst könntes du in ein Cluster 
rechnen lassen.
d.h. ein PC berechnet 0-100 und gleichzeitig einer anderer 100-200

von Tom (Gast)


Lesenswert?

>Schwerionenbeschleuniger aus Darmstadt

Sorry, aber muss das denn sein? Kannst du dir nicht was kürzeres 
ausdenken als so einen Blödsinn?

von Philip K. (plip)


Lesenswert?

Tom wrote:
>>Schwerionenbeschleuniger aus Darmstadt
>
> Sorry, aber muss das denn sein? Kannst du dir nicht was kürzeres
> ausdenken als so einen Blödsinn?

Du hast ja Sorgen...

von Falk B. (falk)


Lesenswert?

@ Schwerionenbeschleuniger aus Darmstadt (Gast)

>Die Formeln und Modelle sind vorhanden, bzw in Entstehung und nun geht
>es an die Realisation. Wie realsiert man sowas am Besten: Ich dachte
>bisher an einen PC, der mitrechnet und die Ergebnisse updated.

Das ist ein gängiger Ansatz.

> Ich habe
>auch in der Programmiersprache C sowie in Matlab Beispielrechnungen dazu
>gemacht.

>Die Modelle sind nicht all zu aufwändig und rechenintensiv, trotzdem
>ergibt eine Überschlagskalkulation, daß mit einem schnellen Pc die
>Berechung im Bereich von 100-200 Ergebnissen je Sekunde liegen kann,

Das ist ein Widersprung in sich! Ein heutiger Standard-PC hat Dampf ohne 
Ende. Was für "nicht all zu aufwändige" Modell sind das denn?

> was
>viel zu grob wäre, um damit etwas anzufangen.

Wie Fein braucht man es denn? 1000 Berechnungen pro Sekunde? 10.000?

>Leider sind meine finanziellen Mittel und auch die Zeit begrenzt, sodaß
>ich mir kein Rechenzentrum mieten kann, welches die 1000fache
>Rechenleistung aufbringen könnte. Ich habe aber auch sonst keine

Ich glaub dir fehlt erstmal ein wenige Wissen, um Rechenleistung real 
einschätzen zu können. Nach DSP und Clustern schreien kann jeder Depp.

>bezahlbare DSP-Plattform gefunden, die genug FLOPs (oder wie es heisst)

Was hab ich gerade gesagt . . . ;-)

>und das ganze in ein FPGA bringen. Ein FPGA hätte den Vorteil, daß viele
>Additionen und Vergleiche (Wege durch das Entscheidungssystem) parallel
>und in einem Clock-Takt laufen könnte, was das ganze sehr viel schneller
>machen sollte. Man bräcchte dann wohl  ein großes FPGA (oder mehrere)
>und eine Verbindung zum PC, der die Daten abspeichert.

Und vor allem jemanden, der auf dem Gebiet SEHR fit ist. Es ist ein 
Irrtum anzunehmen, das man C-Code in eine Software packt, nen Knopf 
drückt und unten purzelt ein superschneller, paralleler Algorithmus 
raus.

>Kann man soetwas kaufen? Wie kommt man an eine Plattform hern, die
>soetwas kann und nur noch programmiert werden muss?

;-)))
Was du brauchst im Moment ist nicht Hardware, sondern Wissen. Und das 
kann man (Gott sei Dank) noch nicht kaufen.

MFG
Falk

von A. F. (chefdesigner)


Lesenswert?

Ich fürchte, daß die Verwendung eines einzelnen FPGAs nicht den 
Fortschritt gegenüber kaskadierten DSP-Systemen bringt, der hier 
benötigt wird. Da wird es sicher auch mehrere FPGAs brauchen.

Eine Möglichkeit wäre, eine Kombination zu nutzen, um das FPGA die 
Entscheidungen machen zu lassen und all das, was zu pipelinen ist, 
währed der DSÜ solche Sachen macht, wie Trigonometrie. Wenn keine 
Spezialhardware gebaut werden kann, sollte man gfs. eine PCI-basierte 
FPGA-Karte nehmen, die mit einem weiteren Board erweitert werden kann.

Ich habe in einem Beispiel mal auf eine Beschleunigerkarte 
zurückgegriffen: Dor läuft dasselbe wie im ModelSIM, nur 1000mal 
schneller. Vielleicht nutzt das was ?

Was Matlab an FPGA Code generieren kann, weis ich nicht. Ich kenne nur 
das System mit Labview und von dem bin ich nicht überzeugt.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich hoffe Du hast diese Berechnungen nicht mit Matlab und Co gemessen, 
oder? Ansonsten kannste gleich nochmal den Faktor 100 als Steigerung zu 
Grunde legen. Sorry aber bei der Ausfuehrlichkeit, in der Du das 
darstellst, kann ich leider garnichts dazu sagen, Du sprichst von 
"Modellen" und "nicht zu aufwaendig". Was erwartest Du bitte? Ich sage 
Dir dann "vielleicht besser"? Irgendwie biste nich glaubwuerdig, sorry.

Nachtrag: Was ich damit sagen will: 100-200 Ergebnisse hoert sich 
erstmal nach wenig an, kann man aber nicht zu sagen ohne den Aufwand zu 
kennen. Vielleicht hast Du Chancen, die Sache weiter zu optimieren. Gib 
Dich mal nicht so bedeckt und werde etwas genauer.

Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn man es richtig macht kann Matlab sehr schnell sein.

von alex (Gast)


Lesenswert?

Hallo "Schwerionenbeschleuniger aus Darmstadt",

An der GSI gibt es meines Wissens ein HF-Team, dort setzen die Leute 
häufig FPGAs ein, auch für die Kavitätensteuerung (-regelung?) - wäre 
noch ne Möglichkeit, sich dort zu erkundigen...

von Schwerionenbeschleuniger aus Darmstadt (Gast)


Lesenswert?

>An der GSI gibt es meines Wissens ein HF-Team

Was Du nichts sagst (:-D)
Ich habe mich ja schon umgehört und die Lösung, FPGAs zu nutzen ist ja 
nun beschlossene Sachen. Es bleibt aber nach wie vor das Problem, daß 
ich Ich keine eigene Hardware bauen (lassen) kann, sondern eine 
käufliche Pltatform benötige. Die muss auch kompakt sein.

>Wenn sich das Problem Paralliesiern läst könntes du in ein Cluster
>rechnen lassen d.h. ein PC berechnet 0-100 und gleichzeitig einer
>anderer 100-200

So geht das nicht, ich brauche die Punkte schon sequenziell in Echtzeit.

>Ich hoffe Du hast diese Berechnungen nicht mit Matlab und Co gemessen,
Nein, sie wurden in Matlab erzeugt und geprüft.

> Du sprichst von "Modellen" und "nicht zu aufwaendig".
In C Code übersetzt, rechnet ein Windowsprogramm so um den Faktor 100 zu 
langsam. Ich habe schon VHDL gemacht und würde auch den Code in HDL 
umsetzen können. Es fehlt mir nur die Universalhardware dafür.

Ich habe schon an ein EVAL Board gedacht, brauche aber noch eine 
schnelle Verdingun zum PC. USB müsste reichen, aber sowas habe ich ncht 
nicht gemacht. Ausserdem brauche ich einen Treiber im PC.

Was ich daher suche wäre eine FPGA PLattform mit einigen Analog und 
Digitaleingängen , die sich von einem Rechner aus beschreiben lässt und 
Daten empfängt. Müsste ready to use sein, damit ich mich auf die 
Applikation konzentrieren kann.

>sollte man gfs. eine PCI-basierte FPGA-Karte nehmen, die mit einem
>weiteren Board erweitert werden kann.

Was könnte man da nehmen? Muss ich dann PCI-Bus programmieren?

von Düsentrieb (Gast)


Lesenswert?


von Düsentrieb (Gast)


Lesenswert?

zb die c6000 dsp von texas sind auch flott...9600 MIPS/MMACS (16-Bits)
http://www.etools.de/boards/processor/dsp/index.html

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Solange du nicht ungefähr weißt (bzw. uns mitteilst) welche Rechnungen 
wie schnell durchgeführt werden müssen kann man nichts empfehlen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.