Ich möchte mit einem PC schnelle Berechnungen machen und dazu Funktionen auf DSPs auslagern. Kennt einer eine Plattform, die man frei programmieren kann? Ideal wäre eine PCI-System mit mehreren DSPs zum einstecken in den PC, optimal mehrere möglich. Danke
Das lohnt sich heutzutage nicht mehr, GPUs und CPUs sind schneller und billiger als DSPs.
Als Stichwort möchte ich hier auf OpenCL verweisen: https://de.wikipedia.org/wiki/OpenCL Das ist für Berechnungen auf Grafikkarten gedacht.
Andreas S. schrieb: > Das lohnt sich heutzutage nicht mehr, GPUs und CPUs sind schneller und > billiger als DSPs. Im professionellen Bereich werden aber Bildverarbeitungssysteme geliefert, die mehrere DSPs auf einer Karte haben. Die bringen sicher mehr, als eine CPU. Oder kennt jemand Karten mit mehreren CPUs drauf?
PC Freak schrieb: > Im professionellen Bereich werden aber Bildverarbeitungssysteme > geliefert, die mehrere DSPs auf einer Karte haben. Die bringen sicher > mehr, als eine CPU. Oder kennt jemand Karten mit mehreren CPUs drauf? Das liegt daran, dass solche professionellen Lösungen zum großen Teil aus einer Zeit stammen, als man spezielle DSP-Karten braucht. Da die selten verkauft werden ist es billiger einfach eine Spezialkarte mit DSPs mitzuliefern als die Software umzuschreiben. DSPs hat man heute eher in Bereichen in dem man "mittlere" Rechenleistung braucht, da sind die manchmal deutlich billiger und stromsparender. Deshalb gibts die zum Beispiel in Mobiltelefonen. So ein kleines 20 Euro Telefon braucht halt relativ viel Rechenleistung (GSM-Codec und GSM Datenempfang) darf aber nicht viel kosten und muss 2 Wochen mit einem kleinen billigen Akku durchhalten.
PC Freak schrieb: > Oder kennt jemand Karten mit mehreren CPUs drauf? Es gibt Mehrprozessorrechner. Zumindest in meiner Blase (bin Linuxnutzer) sind die sogar inzwischen längst üblich. Es gibt sogar preiswerte Mehrfachprozessoren welche mehrere Prozessorkerne in einem Gehäuse vereinen. So als Einsteckkarte hat das relativ wenig Sinn, aber es gibt Hauptplatinen mit mehreren Sockeln: http://www.heise.de/preisvergleich/supermicro-x9qri-f-mbd-x9qri-f-a819920.html?hloc=at&hloc=de
PC Freak schrieb: > Im professionellen Bereich werden aber Bildverarbeitungssysteme > geliefert, die mehrere DSPs auf einer Karte haben. Da nimmt man aber eher FPGAs, Silicon Software macht sowas zB. in ihren microEnable Framegrabbern. IBM hatte mal eine Karte mit dem Cell Prozessor der auch in der PS3 drin ist, aber diese Entwicklung ist auch tot.
Hallo, eine halbwegs aktuelle CPU braucht ca. 900ps für eine 64-Bit Fließkommamultiplikation. LTSpice verwendet schon selbstmodifizierenden Code, um überhaupt schnell genug die Daten aus dem RAM beischaffen zu können für die CPU. Bis du DSPs oder FPGAs hast, die schneller sind und dann noch die entsprechend schnelle Schnittstelle dazu hast zahlst du deutlich mehr als für einen PC. Zudem verhalten sich selbst die kleinen i3 Dualcore Prozessoren durch Hyperthreading für einfach Operationen wie 4-Kerner. Wenn deine Algorithmen halbwegs gut implementiert sind hast du da unglaubliche Rechenleistung zu Verfügung. Als Anhaltspunkt: Die Rechenleistung der Intel i-Serien liegen ungefähr auf dem Rechneleistungsniveau der schnellsten Supercomputer der 2000-2002er Jahre. Gruß Kai
Jojo S. schrieb: > Da nimmt man aber eher FPGAs, Silicon Software macht sowas zB. in ihren > microEnable Framegrabbern. Ja, aber auch da eher für die Schnittstellen. Normale PCs haben halt keine HD-SDI Schnittstelle. :) FPGAs sind billiger als Spezialchips und in vielen Fällen schnell genug.
Christian B. schrieb: > Ja, aber auch da eher für die Schnittstellen. Nö, bei SiSo sind extra 'dickere' FPGAs drauf um da auch eigene Logik einzubauen. Dazu gibt es fertige Bibliotheken die über eine grafische Programmierung zusammengebaut werden, VisualApplets heisst es bei denen. http://silicon.software/produkte/entwicklungssoftware/visual-applets/?lang=de
Also so wie die Seite ausschaut geht es denen wohl primär um den "Kopierschutz". Die Module funktionieren dann halt nur auf den FPGAs. Ist auch ein tolles "Vendor Lock-In". :)
:
Bearbeitet durch User
Kai S. schrieb: > eine halbwegs aktuelle CPU braucht ca. 900ps für eine 64-Bit Für EINE Operation und bei 8 Kernen sind es 8 Operationen pro 900ps. Macht 1 Operation / 100 ps. In FPGAs rechen viele, bzw ALLE Recheneinheiten alle 5ns. Macht allein bei den DSPs eines Spartan über 150/5s = 3 pro 100ps. > LTSpice verwendet schon selbstmodifizierenden Code, um überhaupt schnell > genug die Daten aus dem RAM beischaffen zu können für die CPU. Das ist der entscheidende Satz, weil ... Bandbreite aktueller DDR-Controller im PC (quad): 70 GB/s Real netto nutzbar für bidirektionalen Betrieb: 20 GB/s Bandbreite 150 Block RAMs im FPGA: 240 GB/s Real nutzbar bei 2x voll Dualportzugriff: 960 GB/s > Bis du DSPs oder FPGAs hast, die schneller sind und dann noch die > entsprechend schnelle Schnittstelle dazu hast Bis es einen PC gibt, der das kann, was ein Spartan an Rechenleistung hat, muss man noch 50 Jahre warten, oder heute 50 PCs nehmen.
:
Bearbeitet durch User
PC Freak schrieb: > Ideal wäre eine PCI-System mit mehreren DSPs zum einstecken in den PC, > optimal mehrere möglich. Was sollen die können? Audio? Video? SDR? Früher war es so, dass man wegen langsamer PCs spezielle DSP-Karten gebaut hat, um die Rechenleistung hochzutreiben. Daher musste man, zunächst im Video- dann auch im Audio-Bereich diese Karten haben, um die Software schnell genug laufen lassen zu können. Inzwischen hat es sich verschoben: Bei Video gibt es die schnellen Grafikkarten, wo man spezielle Software braucht, um sie laufen lassen zu können. GPU ist zwar absolut nicht sehr effektiv, weil es auch dort einen Flaschenhals gibt, aber sie sind so billig, dass es ökonomisch ist. Videorenderkarten findet man nur noch bei Speziellen Anwendungen und die sind aus entwicklungstechnischen Gründen heute eben FPGA-basiert. Beim Audio ist es bisweilen so, dass man besagte Karten haben muss, um die Software überhaupt laufen lassen zu können. Da ist die SW oft Mittel zum Vertrieb der Karten. Frei programmierbares gibt es da wenig bis nichts.
:
Bearbeitet durch User
Ich komme von hier her und hänge mich mal hier dran: Beitrag "Re: high speed Video-Experimental-System" Ich suche auch sowas, was man mit dem PC kombinieren kann und entsprechende Funktionen bietet. Mit Grafikkartenprogrammierung kenne ich mich einigermaßen aus. In meinem Fall geht es um das schnelle, echtzeitfähige Zeichnen von 3D-Figuren im 2-dimensionalen mit anschließendem Mischen und Weiterverarbeitung. Jürgen S. schrieb: > Videorenderkarten findet man nur noch > bei Speziellen Anwendungen und die sind aus entwicklungstechnischen > Gründen heute eben FPGA-basiert. Hättest Du da vielleicht einen Tipp?
Andreas S. schrieb: > Das lohnt sich heutzutage nicht mehr, GPUs und CPUs sind schneller und > billiger als DSPs. Bis zu einer gewissen Größe des Endgerätes einerseits und des Funktionsumfangs andererseits, sind PCs und Grafikarten zu groß und zu teuer. Ich habe mal an der Entwicklung eines Schachcomputers mitgewirkt und von der Performance war das zwar auf einer PC-Plattform zu machen, aber wer will einen Einplatinencomputer nutzen? Heute bei den tablet-PCs ist es was anderes, aber die fressen halt auch Strom. Portierbar, Klein, Effektiv, Kostensparend : Signalprozessor PC vorhanden, nutzbar, Größe egal, Strom Egal : CPU + Grafikkarte Leistung am Maximum, Strom komplett egal, : FPGA / HPC. Ich würde mich mal im Bereich HPC umschauen. Ich war selbst schon in die Entwicklung solcher Systeme involviert. Dort werden meistens mehrere Subsysteme parallel geschaltet, um genügend parallele Leistung zu haben. Im Falle von PCs ist das vor allem PCI-Power. Wie oben schon erwähnt gibt es da eine Reihe unterschiedlicher Lösungen z.T. mit und ohne Grafikkarten. Es gibt auch eine Reihe anderer Ansätze, Grafikchips mit FPGAs zu verknüpfen, um die Beschränkungen von PCs als Plattform zu umgehen. Alles eine Frage der Ansprüche.
Wenn man es selber entwickelt, geht es noch. Man hat eben den Invest an Zeit, bringt aber auch Knowhow. Beim Aufbauen von Prototypen kommt man halt schnell in das Thema Lieferbarkeit: Manche Chips kriegst Du nur im 100er Pack. Und manche kriegst Du gar nicht. Ich habe schon etliche Sachen verlangsamt in Software oder im FPGA machen müssen. Aber klar: Die Einzelchips und Subsysteme sind in kleinen Stückzahlen dann halt richtig teuer. Man muss unbedingt einen Kunden haben, der einem das Ganze gegenfinanziert. Mein letztes Projekt war ein kombiniertes System aus einer FPGA-Plattform als Datengewinner und CUDA als Verarbeiter. Kopplung per Ethernet und UDP. Wenn man das auf einer Platine hätte, also nur die Rechenleistung der Chips, hätte man ein Tausendfaches der Bandbreite und wesentlich weniger Verzögerung. Vor allem könnte man mehr in die Grafikchips auslagern, statt es im PC zu machen oder im FPGA vorwegzunehmen. Dumm ist auch, dass du an die CUDA-Chips einzeln nicht rankommst. Man muss immer über die Karte gehen. Aber einer meiner Kunden ist dran, eine Plattform zu entwickeln, wo auf einem Board zwei FPGAs und ein Steckplatz für eine GPU sitzen und der FPGA die Karte direkt antreibt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.