Nieuchronność penetracji układów FPGA do centrów danych

Nieuchronność penetracji układów FPGA do centrów danych
Nie musisz być projektantem chipów, aby programować dla układów FPGA, tak jak nie musisz być programistą C++, aby pisać kod w Javie. Jednak w obu przypadkach zapewne będzie to przydatne.

Celem komercjalizacji zarówno technologii Java, jak i FPGA jest obalenie tego ostatniego twierdzenia. Dobra wiadomość dla układów FPGA – przy użyciu odpowiednich warstw abstrakcji i zestawu narzędzi w ciągu ostatnich 35 lat od wynalezienia programowalnego urządzenia logicznego tworzenie algorytmów i przepływów danych dla układów FPGA zamiast procesorów, procesorów DSP, procesorów graficznych lub jakiejkolwiek innej formy niestandardowych układów ASIC stało się coraz powszechniejsze.łatwiej.

O niesamowitej aktualności ich powstania świadczy fakt, że właśnie wtedy, gdy procesory CPU nie mogły już pozostać jedynym modułem obliczeniowym centrów danych wykonującym wiele zadań – z różnych powodów – układy FPGA osiągnęły swoją efektywność, oferując szybkość, małe opóźnienia, możliwości sieciowe i pamięć - heterogeniczne możliwości obliczeniowe współczesnych układów SoC FPGA, które są niemal pełnoprawnymi systemami obliczeniowymi. Jednak układy FPGA z powodzeniem można łączyć także z innymi urządzeniami w układach hybrydowych i naszym zdaniem dopiero zaczynają odnajdywać należne im miejsce w hierarchii obliczeniowej.

Dlatego 22 stycznia zorganizowaliśmy konferencję The Next FPGA Platform w San Jose. Naturalnie jednym z głównych dostawców FPGA na świecie i pionierem w tym obszarze jest firma Xilinx. Ivo Bolsens, starszy wiceprezes i dyrektor ds. technologii w Xilinx, przemawiał na konferencji i podzielił się z nami swoimi przemyśleniami na temat tego, jak Xilinx pomaga w tworzeniu zmiennych systemów obliczeniowych dla centrów danych.

Architektom systemów i programistom zajęło dużo czasu opracowanie heterogenicznego centrum danych, które będzie wyposażone w różne rodzaje mocy obliczeniowej, rozwiązujące problemy w zakresie obliczeń, przechowywania danych i sieci. Wydaje się to konieczne ze względu na fakt, że przestrzeganie prawa Moore’a przy użyciu różnych urządzeń CMOS staje się coraz trudniejsze. Na razie nasz język nadal koncentruje się na procesorze i nadal mówimy o „akceleracji aplikacji”, co oznacza, że ​​programy działają lepiej niż to, co można zrobić na samych procesorach. Z biegiem czasu centra danych staną się zbiorami mocy obliczeniowej, przechowywania danych i protokołów, które łączą wszystko w całość, i powrócimy do terminów takich jak „obliczenia” i „aplikacje”. Przetwarzanie hybrydowe stanie się tak samo normalne, jak dzisiejsze usługi w chmurze działające na komputerach stacjonarnych lub maszynach wirtualnych, a w pewnym momencie będziemy po prostu używać słowa „przetwarzanie”, aby opisać, jak działają. W pewnym momencie – i jest prawdopodobne, że układy FPGA pomogą zapoczątkować tę erę – ponownie nazwiemy to przetwarzaniem danych.

Przyjęcie układów FPGA w centrach danych będzie wymagało zmiany sposobu myślenia. „Myśląc o sposobach przyspieszenia współczesnych aplikacji, należy zapoznać się z podstawami ich działania, wykorzystania zasobów i spędzania czasu” – wyjaśnia Bolsens. – Musisz przestudiować ogólny problem, który próbujesz rozwiązać. Wiele aplikacji działających obecnie w centrach danych można skalować tak, aby zużywały duże ilości zasobów. Weźmy na przykład uczenie maszynowe, które wykorzystuje ogromną liczbę węzłów obliczeniowych. Ale kiedy mówimy o przyspieszeniu, musimy myśleć nie tylko o przyspieszeniu obliczeń, ale także o przyspieszeniu infrastruktury.

Na przykład w przypadku operacji uczenia maszynowego, które Bolsens badał w praktyce, około 50% czasu poświęca się na przesyłanie danych tam i z powrotem pomiędzy rozproszonymi mocami obliczeniowymi, a tylko pozostałą połowę czasu poświęca się na same obliczenia.

„Myślę, że w tym miejscu może pomóc układ FPGA, ponieważ możemy zapewnić optymalizację zarówno aspektów obliczeniowych, jak i komunikacyjnych aplikacji. Możemy to zrobić na poziomie ogólnej infrastruktury i na poziomie chipa. Jest to jedna z wielkich zalet układów FPGA, pozwalająca na tworzenie sieci komunikacyjnych dla konkretnych potrzeb aplikacji. Opierając się na typowych wzorcach przepływu danych w obciążeniach AI, nie widzę potrzeby stosowania złożonej architektury opartej na przełącznikach. Można zbudować sieć o dużym przepływie danych. To samo tyczy się zadań uczenia sieci neuronowych – można zbudować sieć mesh z rozmiarami pakietów dostosowującymi się do konkretnego zadania. Korzystając z FPGA, protokoły przesyłania danych i topologie obwodów można bardzo precyzyjnie skalować i dostosowywać do konkretnego zastosowania. W przypadku uczenia maszynowego jasne jest również, że nie potrzebujemy liczb zmiennoprzecinkowych o podwójnej precyzji i to też możemy dostosować”.

Różnica między układem FPGA a procesorem lub niestandardowym układem ASIC polega na tym, że te ostatnie są programowane fabrycznie i po tym czasie nie można już zmienić zdania na temat typów obliczanych danych lub obliczanych elementów ani charakteru danych przepływać przez urządzenie. Układy FPGA pozwalają zmienić zdanie w przypadku zmiany warunków pracy.

W przeszłości ta zaleta miała swoją cenę, gdy programowanie FPGA nie było dla osób o słabym sercu. Konieczne jest otwarcie kompilatorów FPGA w celu lepszej integracji z narzędziami używanymi przez programistów do pisania aplikacji pracujących równolegle z procesorem w C, C++ lub Pythonie oraz zlecanie części pracy bibliotekom, które przyspieszają procedury na FPGA. To właśnie robi stos uczenia maszynowego Vitis, zasilając platformy ML, takie jak Caffe i TensorFlow, z bibliotekami do uruchamiania konwencjonalnych modeli AI lub dodawania funkcji FPGA do zadań takich jak transkodowanie wideo, rozpoznawanie obiektów wideo i analiza danych. , zarządzanie ryzykiem finansowym i dowolne trzecie -biblioteki partyjne.

Koncepcja ta nie różni się zbytnio od projektu CUDA firmy Nvidia, uruchomionego dziesięć lat temu, który przenosi obliczenia równoległe na rzecz akceleratorów GPU, zestawu narzędzi AMD ROCm czy obietnic projektu OneAPI firmy Intel, który powinien działać na różnych procesorach, procesorach graficznych i FPGA.

Pytanie tylko, jak wszystkie te narzędzia zostaną ze sobą połączone, aby każdy mógł zaprogramować zestaw mocy obliczeniowych według własnego uznania. Jest to ważne, ponieważ układy FPGA stały się bardziej złożone, znacznie bardziej złożone niż którykolwiek z dostępnych procesorów. Produkowane są przy zastosowaniu najnowocześniejszych procesów produkcyjnych i najnowocześniejszych technologii pakowania chipów. I znajdą swoją niszę, ponieważ nie możemy już marnować czasu, pieniędzy, energii i inteligencji – to wszystko są zbyt drogie zasoby.

„Układy FPGA oferują korzyści technologiczne” – mówi Bolsens. – I nie jest to tylko zwykła reklama możliwości adaptacji i rekonfiguracji. We wszystkich ważnych zastosowaniach – uczeniu maszynowym, analizie wykresów, szybkim handlu itp. - mają możliwość dostosowania do konkretnego zadania nie tylko ścieżki dystrybucji danych, ale także architektury pamięci - sposobu przemieszczania się danych w chipie. Układy FPGA mają również znacznie więcej wbudowanej pamięci niż inne urządzenia. Należy również wziąć pod uwagę, że jeśli zadanie nie mieści się w jednym FPGA, można je skalować na wiele układów bez napotykania wad, które czekają na Ciebie podczas skalowania zadań na wiele procesorów lub procesorów graficznych.”

Źródło: www.habr.com

Dodaj komentarz