Maszyny AI. Jak zapewnić sztucznej inteligencji moc obliczeniową za pomocą nowoczesnych komputerów przemysłowych?
| Prezentacje firmowe PLC, HMI, OprogramowanieSztuczna inteligencja (AI) to w ostatnich czasach bardzo głośny temat. Odgrywa coraz większą rolę w różnych dziedzinach, od analizy danych po automatyzację procesów przemysłowych. W niniejszym artykule nie będziemy się jednak skupiać na tym, jakie korzyści czy obawy są związane z tą technologią, a podejdziemy do tematu od strony sprzętowej. Aby AI mogła efektywnie wykonywać swoje zadania, potrzebuje odpowiedniej mocy obliczeniowej. Nowoczesne komputery przemysłowe oferują rozwiązania, które mogą zaspokoić te potrzeby. Omówimy, jakie cechy architektury obliczeniowej i jakie parametry sprzętowe potrafią zapewnić sztucznej inteligencji odpowiednią moc obliczeniową.
Takie zagadnienia jak narzędzia do automatycznego generowania treści czy inne zastosowania wykorzystujące AI są z pewnością wszystkim czytelnikom doskonale znane. Ale z czym właściwie wiąże się sztuczna inteligencja nie dla zwykłego "ludzkiego" użytkownika, a dla komputera, w którym dzieje się cała "magia"?
Aby to zrozumieć, w pierwszej kolejności przyjrzyjmy się, z czego składają się algorytmy AI. Przykładowo, sieć neuronowa jest fundamentalnym i bardzo często stosowanym w wielu modelach elementem sztucznej inteligencji, inspirowanym strukturą i działaniem ludzkiego mózgu. Sieci neuronowe to systemy obliczeniowe, złożone z wielu połączonych ze sobą jednostek (neuronów), zdolnych do uczenia się i podejmowania decyzji na podstawie dostarczonych danych. Składają się z warstwy wejściowej, przyjmującej dane, warstw ukrytych, które przetwarzają dane za pomocą szeregu operacji matematycznych, oraz warstwy wyjściowej, generującej końcowe wyniki. Ze względu na ilość danych wejściowych i wyjściowych, a także skalę warstw ukrytych, sieci neuronowe wiążą się z ogromną liczbą operacji wykonywanych na macierzach i tensorach. Ponadto kluczową rolę w obliczeniach odgrywają liczby zmiennoprzecinkowe, pozwalające reprezentować szerokie zakresy wartości, za to skutkujące jeszcze większą złożonością obliczeniową. Oczywiście sieci neuronowe to niejedyny rodzaj algorytmów wykorzystywanych w uczeniu, aczkolwiek bardzo dobrze obrazują, jak dużych pokładów mocy obliczeniowej potrafi wymagać sztuczna inteligencja.
Przyjrzyjmy się jeszcze samej architekturze komputera. Centralną jednostką obliczeniową w przypadku każdego PC jest CPU (ang. central processing unit), czyli wszystkim dobrze znany procesor. Pomimo że w obecnych czasach stosowane są procesory wielordzeniowe i wielowątkowe, to generalnie CPU jest urządzeniem zaprojektowanym do wykonywania sekwencyjnych, pojedynczych zadań z dużą prędkością. Oczywiście to bardzo skuteczne narzędzie w podtrzymywaniu bez opóźnień takich procesów, jak praca systemu operacyjnego, wykonywanie różnego rodzaju programów itp., jednak w przypadku uczenia i wnioskowania skomplikowanych algorytmów sztucznej inteligencji nie radzi sobie najlepiej.
Do takich zastosowań (podobnie jak np. do gier komputerowych czy programów do wizualizacji) zdecydowanie lepiej sprawdza się procesor graficzny GPU (ang. graphics processing unit), znany również jako karta graficzna. Jest on zaprojektowany w sposób znacznie ułatwiający równoległe (jednoczesne) wykonywanie dużej liczby obliczeń. Tego typu urządzenia są zoptymalizowane pod kątem jak największej przepustowości. Rzecz jasna, istnieją rodzaje zarówno konsumenckie, przeznaczone bardziej do typowego renderowania grafiki z dużą liczbą klatek na sekundę i wysoką rozdzielczością (np. gry komputerowe), jak i te profesjonalne, do zaawansowanych programów i uczenia algorytmów AI (tutaj najskuteczniejsze są rdzenie typu Tensor), ale są to już bardziej szczegółowe detale. To, co warto zapamiętać z tego akapitu, to fakt, że GPU jest naprawdę przydatne w obliczeniach związanych ze sztuczną inteligencją, a w zasadzie tym bardziej niezbędne, im bardziej złożony i zaawansowany pozostaje dany proces. Naturalnie, nie można przy tym pominąć roli CPU, które dzięki wielowątkowości potrafi radzić sobie np. z machine learningiem, ale przede wszystkim wspomaga pracę GPU, podtrzymując pracę całego systemu i wszystkich procesów do tego niezbędnych (w tym zarządzania pamięcią).
Znamy już architekturę podzespołów komputera wykorzystywanych do obliczeń, możemy więc teraz przejść do rodzajów rozwiązań stworzonych do zapewnienia odpowiedniej mocy złożonym algorytmom stosowanym w przemyśle. Nie będziemy skupiać się tutaj na laptopach i pecetach, z których korzystamy na co dzień w domu czy biurze. Weźmiemy pod uwagę przemysłowe komputery dostosowane do niezawodnej, długotrwałej pracy w trudniejszych warunkach, mające ważne cechy budowy do specyficznych aplikacji.
Komputery typu rack/tower
Komputery przemysłowe zamknięte w obudowie przeznaczonej do montażu w szafie rack lub klasyczne maszyny do postawienia pod biurkiem to jedne z częściej stosowanych maszyn w zakładach produkcyjnych. Cechują się one solidną budową ze wzmocnionych materiałów, długim wsparciem podzespołów, a także specjalnym chłodzeniem z filtrami uniemożliwiającymi dostawanie się cząstek kurzu i pyłu do wnętrza.
W przypadku tego typu komputerów mamy szerokie możliwości montażu kart graficznych i dostosowania mocy obliczeniowej do wymagań danej aplikacji. Najprostszym przykładem jest montaż podstawowej konsumenckiej karty graficznej do mniej złożonych zadań. Jest to niewątpliwie efektywne cenowo rozwiązanie. Im bardziej skomplikowane wymagania, tym wybrana karta graficzna powinna być jednak z wyższej półki. Poza wysoką wydajnością, karty z serii profesjonalnej – takie jak np. Nvidia Tesla A40 czy RTX A6000 – są zdecydowanie lepiej zoptymalizowane pod kątem energooszczędności. Oczywiście dzięki stosowaniu odpowiednich płyt głównych możemy multiplikować moc obliczeniową, stosując kilka kart jednocześnie.
Komputery BoxPC
Kategoria komputerów BoxPC wiąże się najczęściej z bezwentylatorową obudową o kompaktowych wymiarach. Tego rodzaju urządzenia świetnie sprawdzają się np. w zastosowaniach brzegowych, gdzie lokalnie zbierają i przetwarzają dane z maszyn i urządzeń, ale także w wielu innych aplikacjach. Do niektórych celów wymagana jest wysoka wydajność obliczeniowa, a należy pamiętać, że nie każdy komputer ma takie możliwości. Tutaj przychodzą nam z pomocą serie komputerów, w których mamy możliwość zamontowania specjalnej karty graficznej. Pozwala nam to zachować dużą moc przy niewielkich rozmiarach, co szczególnie doceniane jest np. w zastosowaniach pojazdowych.
NVIDIA Jetson
Obecnie bardzo dobrze widoczny trend stanowi coraz częstsze wybieranie przez integratorów komputerów przeznaczonych do przemysłu, opartych na module NVIDIA Jetson. Jest to urządzenie łączące na jednej płytce CPU i GPU, o wysokiej wydajności i bardzo niskim poborze prądu. Płyta obliczeniowa pracuje pod specjalną wersją systemu Linux o nazwie JetPack, która ma szerokie możliwości programowania, ale również wykorzystania otwartych, dostępnych za darmo algorytmów, znacznie ułatwiających tworzenie gotowego rozwiązania.
Jest w czym wybierać
Podsumowując, obecnie dostępne są szerokie rozwiązania przeznaczone do dziedzin przemysłu wykorzystujących sztuczną inteligencję. Każdą aplikację należy oczywiście rozpatrywać indywidualnie, jednak dobór odpowiedniego sprzętu nie stanowi najmniejszego problemu, niezależnie od warunków zewnętrznych czy wymagań mocy obliczeniowej.
Jeśli są Państwo zainteresowani tego typu rozwiązaniami, serdecznie zapraszamy do kontaktu pod adresem elmatic@elmark.com.pl
Elmark Automatyka, Michał Koda
Elmark Automatyka
tel. 22 773 79 37
ul. Bukowińska 22 lok. 1B
02-703 Warszawa
elmark@elmark.com.pl
www.elmark.com.pl