Elektroda.pl
Elektroda.pl
X
PCBwayPCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przetwarzanie w chmurze zmienia wszystko w projektowaniu elektroniki

ghost666 22 Cze 2020 18:36 1485 2
  • Przetwarzanie w chmurze zmienia wszystko w projektowaniu elektroniki
    Według Jeffa Biera, założyciela Edge AI oraz Vision Alliance, przetwarzanie w chmurze zmienia wszystko w sektorze projektowania układów elektroniki. Dzieje się tak, ponieważ coraz więcej problemów, przed którymi stoją projektanci, rozwiązuje się w chmurze. Portal EDN, w wywiadzie z Bierem, przyjrzał się tematowi dokładniej. Bier podkreślił chmurę jako najważniejszą siłę napędową obecnych zmian w działach inżynieryjnych na całym świecie. Może jednak warto zacząć od pytania, czy przetwarzanie w chmurze ma w ogóle coś wspólnego z projektowaniem elektroniki.

    „Chmura ma wszystko wspólnego z prawie każdym aspektem projektowania” - odpowiada na wstępnie Bier. Jest on zdania, że zastosowanie narzędzie w chmurze radykalnie zmieniło sposób pracy inżynierów.

    Generowanie kodu

    Bier zauważa, że warsztat tradycyjnego inżyniera – Matlab - wprowadziła już ponad dekadę temu, funkcję, która wygenerowała kod dla procesora wbudowanego w jednym kroku. Jedną z niedocenianych implikacji tej funkcji było to, że na wybór procesora do projektu mogło mieć wpływ to, które procesory są wspierane przez to narzędzie.

    Wcześniej inżynier DSP musiał samodzielnie pisać kod, dla układu – od inżyniera, zajmującego się algorytmami, dostawał dokumentację algorytmów i opisywał całość w Assemblerze (obecnie robiłby to raczej w C lub C++). Dzięki wykorzystaniu automatycznej generacji kodu w Matlabie ten krok można zupełnie wyeliminować z procesu projektowania, i zaoszczędzić czas i pieniądze, ale tylko jeżeli przejdzie się na procesor obsługiwany przez Matlaba.

    Obecnie w czasach sztucznej inteligencji i głębokich sieci neuronowych większość algorytmów rodzi się w chmurze, przy użyciu struktur open source, takich jak TensorFlow czy Pytorch. Są one implementowane na wbudowanych procesorach na wiele sposobów za pomocą różnych narzędzi.

    „Można się założyć, że w przyszłości dużym czynnikiem będą preferowane procesory, które mają najłatwiejszą ścieżkę od chmury do implementacji” mówi Bier. „Czyja chmura ma wbudowany przycisk do implementacji i które procesory są obsługiwane? To chmura, która wygra. I to będzie procesor który wygra na rynku. Jeśli to działa, ludzie to wykorzystają, ponieważ jest to o wiele łatwiejsze i szybsze niż samodzielne pisanie kodu ”.

    Bier wymienia Xnor, spółkę zajmującą się systemami głębokiego uczenia z Seattle, przejętą przez Apple, która udoskonala obecnie ten proces. „Apple zapłaciło bardzo Apple dobrą cenę, ponieważ rozumie wartość szybkiego wprowadzania na rynek nowych produktów” - powiedział.

    Bier widzi wiele aspektów oprogramowania do projektowania systemów wbudowanych, które przeniesione zostaną niebawem do chmury. Już teraz wiele narzędzi EDA jest opartych na chmurze. „W przypadku np. PCB implementowane będą podobne rzeczy, gdzie projektując PCB w chmurze, będzie od razu można nacisnąć >>wyprodukuj mi 10 sztuk na jutro<<” - sugeruje Bier.

    Chociaż wiele osób jeszcze nie doceniło znaczenia chmury dla procesu projektowania elektroniki, zmiana ta zachodzi szybko, częściowo dzięki skali dzisiejszych firm zajmujących się chmurą. Bier cytuje historyczne próby graczy FPGA w celu ułatwienia programowania FPGA, które, jak powiedział, zostały ostatecznie rozwiązane przez Microsoft i Amazon, które dziś oferują akceleratory oparte na FPGA w chmurze. „Wystarczy numer karty kredytowej… Naciskasz przycisk przyspieszania FPGA i to po prostu działa” - mówi. „Microsoft i Amazon rozwiązały ten problem, ponieważ miały odpowiednią skalę i jednorodne środowisko – wszystkie serwery są takie same, to nie jest milion systemów wbudowany, gdzie każdy jest nieco inny. Rozwiązali w ten sposób problemy, których gracze FPGA nigdy nie potrafili rozwiązać. To jeden z powodów, dla których chmura staje się tym środkiem ciężkości w projektowaniu i rozwoju”.

    Co zatem mogą zrobić twórcy układów, aby wpłynąć na twórców aplikacji w chmurze, by te mogły generować kod dla ich procesorów? „Amazon, Google i Microsoft nie dbają o to, z którego układu korzysta klient, o ile korzystają z chmury. Więc twórca chipów jest jedynym, który dba o to, aby to właśnie jego układ był najłatwiejszym celem” - powiedział - „Myślę więc, że tak naprawdę potrzebują obu - muszą współpracować z oboma dużymi graczami w chmurze”. Bier zauważa też, że Intel ma już popularne DevCloud - oparte na chmurze środowisko, w którym programiści mogą budować i optymalizować kod.

    „To kolejny logiczny krok, w którym wszystkie narzędzia i płytki programistyczne są podłączone do serwerów Intela” - powiedział - „Nie trzeba czekać na zainstalowanie czegokolwiek ani czekać na przybycie jakichkolwiek paczek”.

    Krawędź vs chmura

    Innym aspektem, który jest obecnie istotny dla programistów systemów wbudowanych są
    obliczenia brzegowe (odnoszą się one do wszelkich obliczeń wykonywanych poza chmurą, na skraju sieci). Ponieważ więcej urządzeń wbudowanych ma teraz łączność w ramach Internetu Rzeczy (IoT), każdy system będzie musiał zachować ostrożną równowagę między tym, jakie obliczenia są wykonywane w chmurze, a tym, co dzieje się na krawędzi sieci, ze względu na koszty, szybkość lub prywatność.

    „Dlaczego mnie to obchodzi, jeśli jestem osobą zajmującą się systemami wbudowanymi? Cóż, to bardzo ważne” - mówi Bier - „Jeśli przyszłość polega na tym, że urządzenia wbudowane to po prostu głupie urządzenia zbierające dane i przesyłają do chmury, to szczerze mówiąc, jest to o wiele mniej interesujące i o wiele mniej wartościowe niż w przypadku wyrafinowanych, inteligentnych urządzeń wbudowanych oferujących algorytmy AI i przesyłających wyniki do chmury, ale nie w postaci surowych danych.”

    Przykładem jest wymieniana przez Biera firma zajmująca się monitorowaniem dzieci, pracująca nad inteligentnym aparatem do monitorowania ruchów dziecka, oddechu i tętna. Czy inteligencja obliczeniowa powinna być wbudowana w urządzenie czy być realizowana w chmurze? „Umieszczenie AI w chmurze oznacza, że w przypadku awarii domowego połączenia internetowego produkt nie działa” powiedział Bier. „Ale wprowadzając na rynek nianię z obliczeniami w chmurze, można wprowadzić produkt na rynek o rok szybciej, ponieważ wtedy to tylko zwykła głupia kamera Wi-Fi… nie musieli budować celu wbudowany system”.

    Utrzymując inteligencję w chmurze, firma zajmująca się monitorowaniem niemowląt jest w stanie szybciej i łatwiej zmieniać i aktualizować swój algorytm. Po osiągnięciu rozsądnego poziomu wdrożenia może przeprowadzić testy i wdrożenie w ciągu nocy. Wystarczy wdrożyć nowy algorytm u połowy klientów, sprawdzić, który algorytm działa lepiej, a następnie wdrożyć go dla wszystkich. Wszystko to można wykonać za pomocą zaledwie kilku naciśnięć klawiszy.

    Umieszczanie algorytmów AI w urządzeniu końcowym lub w pośrednich węzłach sieci, ma ogromne konsekwencje dla tego, w jaki sposób urządzenie będzie eksploatowane. To jednakże jest poza głównym zainteresowaniem osób, odpowiedzialnych za projektowanie systemów wbudowanych, jak wskazuje Bier.

    Opisana wcześniej firma, zajmująca się monitorowaniem niemowląt, po udanym uruchomieniu aplikacji w chmurze, obecnie dostarcza masowo same monitory. Bier wskazuje, że firma stała się w związku z tym bardziej wrażliwa na koszty i nie musi tak często tworzyć nowych wersji swojego algorytmu. Dzięki temu obecnie pracuje nad stworzeniem produktu drugiej generacji. On jednak ma już wykorzystywać głównie przetwarzanie na krawędzi.

    Potrzebujesz DNN?

    Kolejną szybko rozwijającą się dziedziną, która wyraźnie zmienia sposób działania systemów wbudowanych, jest sztuczna inteligencja. Ankiety przeprowadzone przez Edge AI i Vision Alliance ujawniają, że głębokie sieci neuronowe (DNN), będące podstawą sztucznej inteligencji, przeszły z wykorzystania w około 20% do około 80% zastosowań we wbudowanych systemach widzenia maszynowego w ciągu ostatnich pięciu lat.

    „Ludzie zmagają się z dwiema rzeczami” - mówi Bier - „Jedną z nich jest to, że doprowadzenie do pracy nad aplikacją jest naprawdę trudne. Inną kwestią jest ustalenie, gdzie powinni oni korzystać z głębokich sieci neuronowych”. DNN stały się modne i wszyscy chcą z nich korzystać, ale niekoniecznie są one najlepszym rozwiązaniem wielu problemów, jak uważa Bier. Dla wielu aplikacji klasyczne techniki analizy obrazu są nadal najlepszym rozwiązaniem.

    „Jak rozpoznać problem, który jest odpowiedni do rozwiązania za pomocą głębokich sieci neuronowych, a nie innymi klasycznymi technikami?” - pyta Bier. „Ludzie od systemów wbudowanych, sprzętu i oprogramowania naprawdę muszą zająć się dokładnym rozpoznawaniem takich problemów, ponieważ mają one duży wpływ na sprzęt – potrzebna jest dużo większa wydajności i pamięć w porównaniu do klasycznych, ręcznie opracowanych algorytmów ” - dodaje.

    Źródło: https://www.eetimes.com/cloud-computing-is-changing-everything-about-electronic-design/

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ghost666
    Tłumacz Redaktor
    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 napisał 9843 postów o ocenie 8059, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • PCBwayPCBway
  • #2
    pawelr98
    Poziom 38  
    ghost666 napisał:

    Bier zauważa, że warsztat tradycyjnego inżyniera – Matlab - wprowadziła już ponad dekadę temu, funkcję, która wygenerowała kod dla procesora wbudowanego w jednym kroku. Jedną z niedocenianych implikacji tej funkcji było to, że na wybór procesora do projektu mogło mieć wpływ to, które procesory są wspierane przez to narzędzie.

    Wcześniej inżynier DSP musiał samodzielnie pisać kod, dla układu – od inżyniera, zajmującego się algorytmami, dostawał dokumentację algorytmów i opisywał całość w assemblerze (obecnie robiłby to raczej w C lub C++). Dzięki wykorzystaniu automatycznej generacji kody w Matlabie ten krok można zupełnie wyeliminować z procesu projektowania, i zaoszczędzić czas i pieniądze, ale tylko jeżeli przejdzie się na procesor obsługiwany przez Matlaba.


    Żeby tak tylko Matlab nie korzystał z Javy to by było pięknie.
    Z doświadczeń z przetwarzaniem na sieciach neuronowych dużych ilości danych powiem tylko tyle, że Matlab chodzi tragicznie, robią się wycieki pamięci. Co uczenie sieci to trzeba było zamykać ręcznie proces i całego matlaba.

    Jeśli natomiast chodzi o wbudowany koder to korzystałem z tego kilka razy podczas studiów, całkiem wygodne narzędzie.

    Chociaż z drugiej strony pisanie samemu ma o tyle lepiej, że można na bieżąco pisać dokumentację, zawierać komentarze i łatwiej się odnaleźć w kodzie w razie konieczności modyfikacji.
  • #3
    szczepan999
    Poziom 11  
    Wygląda na bełkot jakiegoś handlarza, który próbuje wcisnąć jedynie słuszne i najlepsze narzędzie.

    Żadna chmura czy inny wynalazek nie zastąpi myślenia.