Eine Forschergruppe des Georgia Institute of Technology entwickelt das Forschungsprojekt Vortex, das ein offenes GPGPU auf Basis der RISC-V-Befehlssatzarchitektur bietet. Ziel ist es, parallele Berechnungen mit der OpenCL-API und dem SIMT-Modell (Single Instruction, Multiple Threads) durchzufĂŒhren sowie Forschung im Bereich der 3D-Grafik zu betreiben und neue GPU-Architekturen zu entwickeln. Derzeit befindet sich das Projekt in der Prototypenphase und lĂ€uft ĂŒber FPGA. SchaltplĂ€ne, Beschreibungen der Hardware-Module in Verilog, Simulatoren, Treiber und begleitende Projektdokumentationen werden unter der BSD-Lizenz veröffentlicht.
Aktuell wird eine standardisierte ISA RISC-V bereitgestellt, die um einige zusĂ€tzliche Befehle erweitert wurde, die fĂŒr die UnterstĂŒtzung von GPU-Funktionen und das Thread-Management erforderlich sind. Bei der Entwicklung haben die Autoren des Projekts versucht, die Ănderungen an der RISC-V-Befehlssatzarchitektur auf ein Minimum zu beschrĂ€nken und dabei vorhandene Vektorbefehle zu nutzen. Ein Ă€hnlicher Ansatz wird auch im Projekt RV64X verfolgt, das ebenfalls ein offenes GPU auf Basis von RISC-V-Technologien entwickelt.

Die Vortex-Grafikverarbeitungsfunktionen sind derzeit begrenzt. Es wurde angekĂŒndigt, dass die UnterstĂŒtzung von OpenGL ES fĂŒr Vortex realisiert wird, jedoch sind im GPU momentan nur die "tex"-Befehle implementiert, um die Verarbeitung von Texturen zu beschleunigen, die auf der Ebene des Fragment-Shader ausgefĂŒhrt wird. Ein integrierter Rasterizer fehlt â alle geometrischen Operationen werden vom System-CPU verarbeitet, wĂ€hrend die grundlegenden Primitives fĂŒr Punkte, Linien und Dreiecke sowie die Verarbeitung von Fragmenten, Tiefe und Transparenz unter Verwendung von OpenCL-Kernen realisiert sind.

In Zukunft ist geplant, ISA-spezifische Erweiterungen fĂŒr die Grafikverarbeitung umzusetzen, UnterstĂŒtzung fĂŒr die APIs CUDA und Vulkan hinzuzufĂŒgen sowie Erweiterungen zur Beschleunigung von maschinellen Lern- und Datenanalyse-Systemen. FĂŒr die Anwendungsentwicklung wird ein Toolkit angeboten, das angepasste Versionen von PoCL (Compiler und Runtime fĂŒr OpenCL), LLVM/Clang, GCC und Binutils umfasst. Auch die Simulation der Chip-Arbeit mithilfe von Verilator (Verilog-Simulator) und SimX (Softwaresimulation) wird unterstĂŒtzt.

Hauptmerkmale von Vortex:
- UnterstĂŒtzung der RISC-V RV32IMF Befehlssatzarchitektur.
- Skalierung des Chips auf bis zu 64 Kerne mit optionalen L2- und L3-Caches.
- Jeder Kern kann 1024 Threads verarbeiten und arbeitet mit einer Frequenz von 250 MHz.
- Die maximale Rechenleistung wird auf 128 GFlops geschÀtzt, wÀhrend die Speicherbandbreite 16 GB/s betrÀgt. Eine 32-Kern-Implementierung mit 200 MHz auf Basis des FPGA Altera Stratix 10 zeigte eine Leistung von 25,6 GFlops.
- UnterstĂŒtzung des Standards OpenCL 1.2.
- Implementierungsmöglichkeiten basierend auf FPGA Intel Arria 10 und Intel Stratix 10.
Quelle: opennet.ru
