Systemy komputerowe o wielkich mocach obliczeniowych HPC umożliwiają realizację wybranych fragmentów obliczeń w oparciu o układy logiki rekonfigurowanej FPGA. Zastosowanie układu o elastyczniej strukturze sprzętowej umożliwia dostosowanie architektury systemu obliczeniowego do aktualnie realizowanego algorytmu, co umożliwia znaczące przyspieszenie obliczeń. Dla potrzeb lepszego wykorzystania układów FPGA oraz zwiększenia oczekiwanej akceleracji obliczeń autor rozprawy dokonał modyfikacji i następnie implementacji wybranych algorytmów zmiennoprzecinkowych. W przypadku umieszczenia niewielkich modułów w strukturach akceleratora sprzętowego dość znacznie uwidaczniają się opóźnienia związane z transferem danych i podziałem algorytmu. Dlatego zrodził się pomysł kompletnej implementacji w układach FPGA większego algorytmu, tak by w pełni ocenić korzyści wynikające ze sprzętowej realizacji operacji zmiennoprzecinkowych. Wybrany został algorytm generowania wartości orbitalu atomowego w punkcie, gdyż spełnia on zakładane kryterium o dającym się wyodrębnić jądrze obliczeniowym. Ponadto celem pracy była również realizacja własnych wybranych modułów sprzętowych, które albo nie są dostępne komercyjnie albo też umożliwią uzyskanie większej wydajności obliczeniowej. Przedstawione w pracy moduły zmiennoprzecinkowe zostały zaimplementowane z wykorzystaniem języka opisu sprzętu VHDL. Zaproponowano architekturę potokową odznaczająca się dużą efektywnością przetwarzanych danych. Zrealizowany projekt cechuje również parametryzacja, która umożliwia elastyczny
dobór, zarówno precyzji obliczeń jak i etapów potokowości przetwarzania, co w konsekwencji wpływa na zajętość zasobów logicznych i wydajność obliczeniową, w zależności od konkretnych potrzeb danej aplikacji. Zaimplementowany moduł obliczający wartość orbitalu atomowego w punkcie zajmuje około 10 % zasobów układu Xilinx Virtex-4 LX200, a w trakcie testów osiągnięto przyspieszenie obliczeń (speed-up) około 3.5 raza względem procesora Itanium 2 1.6 GHz dla orbitali atomowych typu f przy odpowiednio licznym zbiorze współczynników eksponencjalych (więcej niż sześć). Uzyskane w pracy wyniki potwierdzają stawianą w pracy tezę, zgodnie, z którą możliwe jest wykorzystanie układów FPGA do budowy wydajnego akceleratora realizującego obliczenia zmiennoprzecinkowe dla potrzeb naukowo-technicznych.
FPGA implementation of the selected floating-point operations
Several floating-point calculation routines have been implemented in order to determine possibilities of their acceleration with FPGAs. It is worth noting that transfer and algorithm separation costs concern small modules" hardware implementation to a larger degree than bigger ones which leads to the overall system performance drop. Therefore, the author came up with the idea of implementing a large floating-point unit, which allows a comprehensive acceleration estimation (transfer time is no longer the dominant cost). The quantum chemistry algorithm for generating orbital function has been chosen for implementation, also because it is regarded as computational hot spot. Consequently, dedicated hardware modules have been created, which outperform commercially available structures due to their strong parallel internal structure along with the pipeline and parameterization design approach adopted throughout the work. It is worth emphasizing that the designed units can be used separately, apart from the quantum chemistry orbital generation module. Moreover, the described implementation contributes to the efficient hardware implementation of the exchange-correlation potential and its integration with the rest of the computational system. The obtained implementation results prove the thesis stated in the dissertation that FPGA implementation of floating point algorithms may lead to satisfactory performance and acceleration in technical computing.