Ich erforsche die Idee, einen FPGA für lineare Algebra zu verwenden. Ich hätte gerne die Möglichkeit, mit großen Matrizen (> 4 GB) zu arbeiten. Aber moderne High-End-FPGAs haben RAM in der Größenordnung von Megabytes.
Bitte beschreiben Sie, wie ich entweder:
Alle anderen Kommentare oder Rückmeldungen sind willkommen.
Ich habe derzeit ein Digilent basys2. Ich bin ein Anfänger.
Aus verschiedenen Gründen werden das Digilent Basys2 und das Xilinx Spartan-3E für Sie nicht funktionieren.
Für diese Menge an RAM benötigen Sie etwas wie DDR2- oder DDR3-SDRAM mit einer ziemlich hohen Taktrate. Dies ist nicht etwas, das Sie einfach auf eine Prototyp-Leiterplatte löten können. Die Leiterplatte muss für die Verbindung mit dem Speicher ausgelegt sein, idealerweise mit bereits auf die Leiterplatte gelötetem RAM. Wenn Sie noch nie eine solche Schaltung entworfen haben, schlage ich vor, dass Sie sich ein FPGA-Board besorgen, auf dem sich bereits das RAM befindet. Dies wird jedoch schwierig, da alle FPGA-Boards, die ich (in 5 Minuten Suche) gesehen habe, viel weniger als 4 GB RAM hatten.
Als nächstes brauchen Sie etwas Neueres als den Spartan-3/3A/3E. Während das S3 ein ansonsten gutes FPGA ist, hat die Spartan-6-Serie noch viel mehr zu bieten. Es hat viel mehr internen RAM (aber Sie brauchen immer noch externen RAM), viel mehr DSP48-Blöcke und mehr Logik. Aber am wichtigsten ist, dass es eine viel bessere SDRAM-Schnittstelle hat als das, was der Spartan-3 hat. Und mit „viel besser“ meine ich „viel einfacher für einen Anfänger erfolgreich zu verwenden“. Der Speichercontroller im S6 ist eine Hard-IP, was für Sie bedeutet, dass es viel einfacher ist, die strengen Timing-Anforderungen der Schnittstelle zu SDRAM zu erfüllen.
Aber die Kontrolle von DDR2/DDR3 SDRAM ist nicht einfach. Xilinx hat ein Tool namens "Memory Interface Generator", das im Core Generator zu finden ist. Dies generiert die Speicherschnittstellenlogik für Sie und bietet Ihnen viele coole Funktionen, die Ihnen das Leben erleichtern werden.
Eine Alternative zum Spartan-6 wäre ein Virtex-5 oder eines der Teile der 7er-Serie. Alle diese haben Speicherschnittstellen, die so gut oder besser sind als die des Spartan-6.
Dieses auf Virtex-7 basierende Board hat einen Sockel für zwei SO-DIMM-Module, mit denen Sie über 4 GB RAM hinauskommen könnten – aber es ist mit 5.000 US-Dollar super teuer.
Ich sollte auch erwähnen, dass ich Ihre Bemühungen unterstütze, wenn Sie dies tun, weil Sie etwas über FPGAs und Elektronik lernen möchten. Aber wenn Sie denken, dass dies irgendwie schneller sein wird als Standard-PCs, dann habe ich schlechte Nachrichten für Sie. Für das Geld ist es schwer, einen Intel i7-basierten Quad-Core-Rechner mit einer vernünftigen GPU-Karte zu schlagen. Ich warne Sie nur, falls Sie sich wirklich nur für mathematische Geschwindigkeit interessieren.
Ignacio Vazquez-Abrams
PeterJ
Das Photon
Kevin Chen
kobrien