Compiling Algorithms for Heterogeneous Systems
Większość pojawiających się aplikacji w dziedzinie obrazowania i uczenia maszynowego musi wykonywać ogromne ilości obliczeń przy jednoczesnym zachowaniu ścisłych limitów energii i mocy. Aby osiągnąć te cele, architekci budują coraz bardziej wyspecjalizowane silniki obliczeniowe dostosowane do tych konkretnych zadań. Powstałe w ten sposób systemy komputerowe są heterogeniczne i zawierają wiele rdzeni obliczeniowych o bardzo różnych modelach wykonania. Niestety, koszt produkcji tego wyspecjalizowanego sprzętu - i oprogramowania do jego kontroli - jest astronomiczny. Co więcej, zadanie przeniesienia algorytmów na te heterogeniczne maszyny zazwyczaj wymaga podzielenia algorytmu na partycje i przepisania go dla każdej konkretnej architektury, co jest czasochłonne i podatne na błędy.
W ciągu ostatnich kilku lat, autorzy podeszli do tego problemu używając języków specyficznych dla domeny (DSL): języków programowania wysokiego poziomu dostosowanych do konkretnych dziedzin, takich jak manipulowanie bazami danych, uczenie maszynowe lub przetwarzanie obrazu. Rezygnując z ogólności, języki te są w stanie zapewnić programistom wysokopoziomowe abstrakcje przy jednoczesnym zapewnieniu wysokiej wydajności. Celem tej książki jest zachęcenie do przyjmowania i tworzenia języków specyficznych dla domeny, szczególnie w przypadku tworzenia projektów sprzętu.
W pierwszym rozdziale, krótka podróż historyczna wyjaśnia siły napędzające dzisiejszą architekturę komputerową. Rozdział 2 opisuje różne metody tworzenia projektów akceleratorów, przedstawiając nacisk na większą abstrakcję i narzędzia, które umożliwiają projektantom pracę na wyższym poziomie koncepcyjnym. Rozdział 3 zawiera krótkie wprowadzenie do algorytmów przetwarzania obrazu i wzorców projektowania sprzętu do ich implementacji. Rozdziały 4 i 5 opisują i porównują Darkroom i Halide, dwa języki specyficzne dla domeny stworzone do przetwarzania obrazu, które tworzą wysokowydajne projekty zarówno dla układów FPGA, jak i procesorów z tego samego kodu źródłowego, umożliwiając szybkie cykle projektowania i szybkie przenoszenie algorytmów. Ostatnia sekcja opisuje, w jaki sposób podejście DSL upraszcza również problem łączenia kodu aplikacji z akceleratorem poprzez generowanie stosu sterowników oprócz konfiguracji akceleratora.
Książka ta powinna służyć jako przydatne wprowadzenie do obliczeń wyspecjalizowanych w danej dziedzinie dla studentów architektury komputerowej oraz jako elementarz języków wyspecjalizowanych w danej dziedzinie i sprzętu do przetwarzania obrazu dla osób z większym doświadczeniem w tej dziedzinie.
© Book1 Group - wszelkie prawa zastrzeżone.
Zawartość tej strony nie może być kopiowana ani wykorzystywana w całości lub w części bez pisemnej zgody właściciela.
Ostatnia aktualizacja: 2024.11.13 21:45 (GMT)