Grupa badawcza z Georgia Institute of Technology rozwija projekt badawczy Vortex, który oferuje otwarte GPGPU oparte na architekturze zestawu instrukcji RISC-V, mający na celu wykonywanie obliczeń równoległych z wykorzystaniem API OpenCL i modelu wykonania SIMT (Single Instruction, Multiple Threads), a także prowadzenie badań z zakresu grafiki 3D i opracowywania nowych architektur GPU. Projekt znajduje się w fazie prototypu, działającego przy użyciu FPGA. Schematy, opisy bloków sprzętowych w języku Verilog, symulator, sterowniki i towarzysząca dokumentacja projektowa są udostępniane na licencji BSD.
W obecnej wersji dostępny jest typowy ISA RISC-V, rozszerzony o dodatkowe instrukcje, niezbędne do wsparcia funkcji GPU i zarządzania wątkami. Podczas prac nad projektem autorzy starali się zminimalizować zmiany w architekturze zestawu instrukcji RISC-V, w miarę możliwości wykorzystując już istniejące instrukcje wektorowe. Podobne podejście stosowane jest także w projekcie RV64X, który również rozwija otwarte GPU oparte na technologiach RISC-V.

Możliwości Vortex w zakresie przetwarzania grafiki są na razie ograniczone. Zgłoszono realizację wsparcia dla OpenGL ES na bazie Vortex, ale w samym GPU na razie zrealizowana została tylko instrukcja "tex" do przyspieszenia przetwarzania tekstur, która jest wykonywana na poziomie shadera fragmentów. Wbudowany rastrowizator jest nieobecny — całe przetwarzanie operacji graficznych jest realizowane przez systemowy CPU, a podstawowe prymitywy dla punktów, linii i trójkątów, a także przetwarzanie fragmentów, głębokości i przezroczystości są realizowane z użyciem rdzenia OpenCL.

W przyszłości planowane jest wprowadzenie specyficznych dla przetwarzania grafiki rozszerzeń ISA, dodanie wsparcia dla API CUDA i Vulkan, a także rozszerzeń do przyspieszania systemów uczenia maszynowego i analizy danych. Do opracowywania aplikacji proponowane jest narzędzie, w tym dostosowane do pracy z Vortex wersje PoCL (kompilator i runtime OpenCL), LLVM/Clang, GCC i Binutils. Obsługiwana jest symulacja pracy chipu z użyciem Verilator (symulator Verilog) i SimX (symulacja software'owa).

Główne cechy Vortex:
- Wsparcie dla architektury zestawu instrukcji RISC-V RV32IMF.
- Skalowanie chipu do 64 rdzeni z opcjonalnymi cache'ami L2 i L3.
- Każdy rdzeń może realizować 1024 wątki i działać z częstotliwością 250 MHz.
- Maksymalna moc obliczeniowa wynosi 128 Gflops, a przepustowość pamięci to 16 GB/s. 32-rdzeniowa wersja, działająca z częstotliwością 200 MHz, oparta na FPGA Altera Stratix 10, osiągnęła wydajność na poziomie 25,6 GFlops.
- Wsparcie dla standardu OpenCL 1.2.
- Możliwość realizacji na bazie FPGA Intel Arria 10 i Intel Stratix 10.
Źródło: opennet.ru
