Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Xilinx wypuszcza Vitis HLS jako open source

ghost666 29 Mar 2021 23:36 624 2
  • Xilinx wypuszcza Vitis HLS jako open source
    Programowanie procesora to dobrze znany proces. Nawet programowanie procesorów graficznych stało się łatwiejsze dzięki frameworkom, takim jak CUDA czy OpenCL firmy Nvidia. Jednak programowanie macierzy bramek programowalnych - układów FPGA - zawsze było uważane za zadanie dla projektantów układów scalonych, a nie typowych programistów. Łańcuch narzędzi Xilinx Vitis i Intel OneAPI próbują zmienić ten pogląd. Wiadomość, że Xilinx udostępnił front-end Vitis HLS (do syntezy wysokiego poziomu) na licencji open source, jest kolejnym impulsem do demokratyzacji tworzenia oprogramowania dla układów FPGA.

    Jest to ważne, ponieważ niektóre problemy najlepiej rozwiązują układy FPGA z ich programowalnymi strukturami danych i dużą przepustowością i niską latencji. FPGA to oryginalna platforma sprzętowa, zdefiniowana programowo. A układy FPGA pozwalają na przedefiniowanie funkcji sprzętowych w już wdrożonym sprzęcie. Przeniesienie projektu programowania FPGA do języków wysokiego poziomu, takich jak C i C++, otwiera nowe możliwości dla projektantów systemów.

    Otwarte oprogramowanie, które wcześniej było zastrzeżone, to świetny sposób na zwiększenie zaangażowania społeczności i zachęcanie do większej liczby innowacji. Xilinx opublikował kod w repozytorium GitHub, otwierając go do wykorzystania przez społeczność. Xilinx wyda również przyszłe wersje na GitHubie. Znaleźć można je https://github.com/Xilinx/HLS.

    Xilinx nawiązał współpracę z firmą Silexica zajmującą się oprogramowaniem FPGA, która stworzyła wtyczkę SLX. Wtyczka rozszerza transformacje kodu Vitis HLS 2020.2, wykorzystując nowy model użycia iniekcji, możliwy dzięki projektowi open source, który może zmniejszyć opóźnienie i zwiększyć przepustowość HLS.

    Opierając się na ostatnich danych rynkowych, Xilinx jest numerem jeden wśród dostawców układów FPGA (pod względem przychodów), a zatem jego produkty mają za sobą dużą społeczność programistów. W związku z tym łańcuch narzędzi Vitis jest szeroko stosowany przez programistów układów Xilinx. Firma ta ma nadzieję na jeszcze szersze zastosowanie swojego darmowego łańcucha narzędzi poprzez otwarcie kodu front-end Vitis HLS.

    Xilinx zaangażował również wiele uniwersytetów w dostosowywanie HLS, takich jak University of Illinois at Urbana Champaign (UIUC), Imperial College London i Hong Kong University of Science and Technology (HKUST). Więcej o wsparciu tych uczelni przeczytać można w poście w którym Xilinx ogłasza nowy program: https://forums.xilinx.com/t5/AI-and-Machine-Learning-Blog/Opening-a-World-of-Possiable-Vitis-HLS-Front-end-is-Now-Open/ba-p/ 1211207. Uniwersytety te aktywnie wykorzystują HLS do swoich zaawansowanych badań. Jeden z aktywnych projektów HKUST jest szczególnie interesujący. Jest to wieloprocesorowy układ HLS, który automatycznie dzieli się na podmoduły, zoptymalizowane pod kątem aplikacji przy użyciu wielu układów FPGA połączonych z siecią lub pamięcią DDR.

    Xilinx lansuje swoje układy FPGA do użytku akademickiego w ramach programu uniwersyteckiego (więcej informacji tutaj). Prowadzi to do zwiększenia liczby artykułów naukowych, w których wykorzystuje się HLS do programowania układów FPGA od Xilinxa. Najlepszym sposobem na przekonanie się do nowoczesnych układów FPGA, jest szybkie zapoznanie się z tą technologią. Dlatego też Xilinx robi, aby studenci zapoznawali się szybko z układami programowalnymi, na możliwie wczesnym etapie kariery. Ostatecznym celem firmy Xilinx jest uczynienie FPGA kolejnym docelowym elementem krzemu, takim jak procesory i procesory graficzne, dla typowych programistów.

    Praca z oprogramowaniem Vitis HLS

    Łańcuch narzędzi Xilinx Vitis HLS umożliwia korzystanie z kodu C lub C++ i funkcji OpenCL, które podawane są do kompilatora Clang wraz z wyrażeniami pragma, specyficznymi dla HLS (dyrektywami kompilatora), które ostatecznie są implementowane w układzie FPGA z jego strukturą logiczną, blokami pamięci RAM i funkcjami DSP (patrz rysunek powyżej po lewej stronie). Przednim końcem Vitis jest kompilator Clang połączony z reprezentacją pośrednią HLS LLVM (IR). Warstwa HLS LLVM IR generuje wyniki RTL dla przestrzennego wdrażania kodu na sprzęcie. Wynik z Front-endu Vitis HLS jest następnie przekazywany do warstwy optymalizacji specyficznej dla Xilinx FPGA i back-endu układu, który jest specyficzny dla Xilinx i nie jest częścią kodu open source.

    "Rozmawiałem z Nickiem Ni, dyrektorem ds. Marketingu produktów w zakresie sztucznej inteligencji i oprogramowania w Xilinx, DJ Wangiem, starszym dyrektorem ds. Inżynierii oprogramowania, oraz Frédériciem Rivoallonem, menedżer produktu w Xilinx HLS o nowym programie. Powiedzieli mi, że Xilinx chce zaangażować społeczność programistów do opracowania większej liczby bibliotek dla HLS i skalowania ekosystemu z większą liczbą partnerów. Pierwotnie przyciąganie do otwartego Vitis HLS Front-end pojawiło się w społeczności badawczej, która chciała mieć większy dostęp do kodu w celu opracowania nowych podejść do zautomatyzowanego projektowania FPGA" opowiada Kevin Krewell, analityk z Tirias Research.

    "Przejście na oprogramowanie typu open source powinno również stymulować powstawanie nowych innowacji, ponieważ zaawansowani użytkownicy będą rozszerzać możliwości HLS. Dzięki przyspieszonej adaptacji, łańcuch narzędzi HLS może wyjść poza układy FPGA do innych układów, takich jak akceleratory AI. Można go nawet rozszerzyć na inne architektury FPGA" dodaje Krewell.

    Otwarty front-end może pomóc rozwiązać więcej problemów klientów Xilinxa. Zaawansowani klienci, tacy jak dostawcy usług w chmurze, mogą głęboko dostosować swoje przepływ projektowe dla układów FPGA i włączyć go do preferowanych języków programowania. Ponadto, dzięki otwarciu tego kody, strony trzecie będą mogły dodawać dodatkowe inne języki, poza C / C++ i różne LLVM IR; a także różne elementy wsparcia do zaplecza.

    Czy Xilinx może wprowadzić HLS do mainstreamu?

    Biorąc pod uwagę wszystkie niedawne dyskusje na temat wspólnego projektowania sprzętu i oprogramowania, być może HLS jest platformą, na której mogą zbiegać się obie te ścieżki. Jest to narzędzie dla programistów, którzy mogą narażać się na problemy ze sprzętem i optymalizacje bez utraty konstrukcje wysokiego poziomu. HLS wymaga od programistów dokładniejszego określenia docelowego sprzętu (na przykład: wymagane są specyfikacje ścieżek danych), ale można to wykorzystać do dostrojenia implementacji sprzętowych. HLS może być narzędziem do badań w tej dziedzinie.

    HLS to inny paradygmat programowania, co sprawia, że ​​konieczne jest nauczanie go na uniwersytetach od podstaw, aby docierać do programistów i inżynierów na wczesnym etapie ich kariery. Wydanie HLS LLVM IR na zasadach open-source, będzie doskonałą szansą na większą akceptację i zaufanie w społecznościach badawczych. Xilinx utrzymuje kontrolę nad HLS - na razie - ponieważ rozwija go od ponad 10 lat, ale z czasem ekosystem ten prawdopodobnie odegra większą rolę w przyszłości HLS. Wizją firmy Xilinx dla HLS jest uczynienie go bardziej popularnym, być może nawet jako de facto standardu do programowania obliczeń przestrzennych i przyspieszonych. Stanie się prawdziwym standardem branżowym wymaga społeczności użytkowników i aktywnych uczestników z całego ekosystemu. Open sourcing HLS powinien być dopiero początkiem kolejnej fazy.

    Źródło: https://www.eetimes.com/xilinx-opens-up-vitis-hls-tool-for-fpgas/

    Cool! Ranking DIY
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 10322 posts with rating 8606, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
  • #2
    rafi8112
    Level 13  
    Osobiście nie do końca wyobrażam sobie programowania układów FPGA językiem C lub C++ Jestem tylko ciekawy czy przytoczone tu syntezery wysokiego poziomu będą na tyle skuteczne i drobiazgowe, że będą wstanie prawidłowo odwzorować każdą naszą logiczną koncepcję.
  • #3
    Armadon
    Level 13  
    A to akurat nie jest specjalnie skomplikowane: taki syntezator tworzy sobie funkcję z C jako blok logiki. Dostaje sobie taki bloczek dane na wejściu, raz dwa wypluwa dane na wyjściu i tyle.
    Myślę ze optymalizacja będzie nawet ciut lepsza niż kod ludzi którzy przesiedli się z procków na FPGA i traktują VHDL jako coś pomiędzy assemblerem a basicem.
    Oczywiście jak ktoś potraktuje w ten sposób obszerny kod to zajmie to jakieś chore ilości bramek logicznych, no ale to już nie problem Xilinxa - oni bardzo chętnie sprzedadzą większą matrycę.

    Natomiast ciekawie wygląda korzystanie z tego tak jak należy z tego korzystać, czyli na takim układzie ZYNQ:
    - część interfejsu użytkownika i komunikacji ze światem zewnętrznym (USB, Ethernet, HDMI, DDR3 itp) robimy sobie kulturalnie na wbudowanym ARMie pod kontrolą linuxa - czyli szybko, tanio i sprawnie.
    - część odpowiedzialną za obróbkę większych ilości danych, jakieś autorskie protokoły komunikacji czy operacje czasu rzeczywistego robimy sobie na części FPGA która to bezboleśnie komunikuje się z częścią procesorową i nie jest obciążona systemem operacyjnym.
    I teraz gwóźdź programu: Proc w czasie pracy może sobie przeprogramowywać fragmenty FPGA. Czyli mamy takiego ARMa z potężnym konfigurowalnym akceleratorem sprzętowym.