Google zaprojektował i zaimplementował drugą generację swoich procesorów TensorFlow (TPU) o których pisaliśmy już na Elektrodzie jakiś czas temu. Teraz te ASICi stworzone do sprzętowej akceleracji systemów uczenia maszynowego w chmurze podłączone zostały do sieci i udostępnione badaczom i klientom firmy. Serwer posiadający zaledwie cztery nowe TPU dostarczyć może 180 TFlopów, które wykorzystywać można tak do uczenia systemu, jak i inferencji (wnioskowania).
Starania Google mają na celu zebranie osób zainteresowanych systemami uczenia maszynowego i skupienie ich wokół usług chmurowych Google. Najlepiej, aby użytkownicy Ci korzystali z otwartego frameworka TensorFlow, dedykowanego do nowego TPU. Chmurowe TPU wspiera matematykę zmiennoprzecinkową, do korzystania z której zachęca Google w ramach tworzenia tak systemów uczenia jak i wnioskowania. Pierwsza generacja TPU tej firmy wspierała tylko zmienne całkowite.
Google pakuje cztery układy tego rodzaju do stworzonego przez siebie akceleratora. Co najmniej 64 układy tego rodzaju umieszczane są w dwuwymiarowej sieci o topologii torusa w pojedynczym "klastrze" który dostarcza do 11,5 petaflopa mocy obliczeniowej. Pierwszej generacji TPU instalowane były w komputerach PC - serwerach o architekturze x86 - w posytaci kart na PCI Express.
"Wiele osób, które zaangażowane było w rozwój pierwszej generacji TPU pracowało także przy jego drugiej iteracji. Druga generacja tych układów to już cały system, nie tylko pojedynczy układ do zainstalowania w komputerze" opowiada Jeff Dean z Google. "Wnioskowanie działać może z powodzeniem na jednym układzie, ale jeśli chodzi o trenowanie systemu - do tego wymagane jest więcej, potrzeba myślenia holistycznego" dodaje Dean.
Jak informuje Google, opracowany przez nich ASIC bez problemu pokonuje GPU w zakresie treningu sieci. Najnowszy model tłumaczenia języka Google aby w pełni nauczyć sieć wymaga całego dnia na 23 najnowszych GPU, jakie dostępne są na rynku. Dla porównania, wystarczy osiem TPU i sześć godzin, aby zrealizować to samo zadanie. Instalacja TPU w serwerach Google rozpoczęła się w 2015 roku z pierwszą generacją układów. Wykorzystywane są one w wielu usługach firmy, takich jak Translate czy Google Photos. Mimo to, sam układ zaprezentowany został dopiero w zeszłym roku na Google I/O. Jak informowała firma wyprodukowany w 28 nm procesie układ przy taktowaniu 700 MHz pobiera 40 W. TPU jest sprzętowym akceleratorem algorytmu o tej samej nazwie - TensorFlow - na pokładzie posiada 65536 8 bitowych jednostek akumulacyjnych i 24 mb pamięci cache. Dzięki temu jest w stanie wykonać 92 teraoperacje na sekundę. TPU I generacji działał od 15 do 30 razy szybciej niż procesory Intel Haswell czy GPU K80 produkowane przez Nvidię. Dodatkowo - wydajność na wat tego układu była od 30 do 80 razy większa. W aplikacjach wielkiej skali, jakie realizuje Google ma to ogromne znaczenie.
Dotychczasowo niewiele wiadomo o układzie II generacji i jego wydajności. Przedstawiciele Google wspominali, że pobór mocy bliższy jest 80 W i że układ wykorzystuje arytmetykę zmiennoprzecinkową. Duży pobór mocy potwierdzają ogromne radiatory zamontowane na układach prezentowanych przez Google. Aby za podwojeniem poboru prądu poszło (co najmniej) podwojenie mocy obliczeniowej w układzie trzeba by umieścić więcej pamięci. I generacja miała już 24 Mbity cache - tyle co niektóre procesory serwerowe. Czy udało się tam zmieścić więcej? Nie wiadomo. Być może pod ogromnymi radiatorami kryją się zewnętrzne układy pamięci HBM czy DRAM, ale firma nie informuje o takich detalach. Podobnie też Google milczy na temat interfejsów i innych detali systemu.
Pojedyncza jednostka w jakiej Google implementuje swoje nowe rozwiązanie zawiera 64 układy TPU nowej generacji, ale na zdjęciu widoczne jest o wiele więcej niż tylko same płytki z procesorami. Na pojedynczej płytce widzimy jeden duży, dwa średnie i osiem małych radiatorów. Co się pod nimi kryje? Nie wiadomo - mogą to być pamięci flash, interkonekty, switche lub inne elementy. Na zdjęciu widzimy jednostkę z 64 TPU, na którą składa się osiem płyt z czterema TPU II generacji na pokładzie. Jednakże na zdjęciach prezentowanych przez Google widzimy sporo wolnego miejsca w systemie - zmieściłoby się tam jeszcze drugie tyle układów TPU, ale może to być miejsce dla dysków SSD, serwerów x86 sterujących tym systemem lub inne elementy niezbędne do działania systemu.
Niezależnie co składa się na system popyt nań jest ogromny. Google implementuje mnóstwo swoich algorytmów na nowych TPU II generacji. Wiele modeli uczonych jest z wykorzystaniem tych układów, aczkolwiek nadal część sieci uczona jest na systemach opartych na GPU. "Z czasem najpewniej przejdziemy na coraz większe wykorzystanie TPU. To sprawi, że nasz cykl pracy będzie szybszy - te same obciążenia na TPU będą pracowały szybciej niż na GPU" komentował Dean.
Gdy spojrzymy na moduły Google od boku dostrzeżemy masywne systemy chłodzenia - wentylatory i radiatory. Sugeruje to, że układy zużywają sporo mocy. Musi to oznaczać, że dostarczają też istotnie więcej mocy obliczeniowej, aby się to po prostu opłacało, szczególnie że Google zaczął udostępniać platformę innym. TensorFlow Research Cloud to ogólnodostępna usługa w chmurze dla wszystkich, którzy chcą wykorzystywać TPU do swoich obliczeń. Jedyne warunki to otwarte publikacje wyników, jak i uwolnienie źródeł wykorzystywanych aplikacji.
Wraz z nowymi TPU Google wypuścił nową wersję - 1.2 - frameworku TensorFlow. Zawarto w nim między innymi nowe API, które pozwoli w prostszy sposób wykorzystywać zalety uczenia we własnych aplikacjach - nawet jeśli ich twórcy mają ograniczone doświadczenie w sieciach neuronowych.
Jak mówi Fei-fei Li z Googlem "Dołączyłem do Google kilka miesięcy temu z misją zapewnienia każdemu dostępu do AI w celu rozwiązywania problemów w innowacyjny sposób, bez względu na to jakie ma umiejętności". I istotnie udało się to, dzięki nowemu API. Analogiczną inicjatywę profesor Li prowadzi na uniwersytecie Stanforda, gdzie wykłada. Takie podejście sprawia, że inni dostawcy usług obliczeniowych i uczenia maszynowego czują naciski, aby udostępnić swoje zasoby na niekomercyjnych zasadach. "Za każdym razem gdy widzę Satyę Nadella (CEO Microsoftu - przyp.red.) przypomina mi on temat inicjatywy uczynienia narzędzia do AI bardziej demokratycznymi" komentuje Peter Lee, szef Microsoft Research. Starania tej firmy skupiają się obecnie wokół wykorzystania układów FPGA.
Google jednakże ma zamiar pozostać sprzętowo agnostyczny - algorytmy opracowywane przez firmę uruchamiać można tak na usługach TPU jak i na komputerach x86 czy układach GPU, jak podkreśla Li. Jedną z firm, która korzysta z usług Google w zakresie uczenia maszynowego jest eBay.
Jakkolwiek Google umożliwia sprzętową elastyczność, to pamiętać trzeba, że "dostępne komercyjnie układy to za mało" jak mówi Dean. "Nasze systemy nie przeszły jeszcze nawet przez 1/6 danych językowych w niektórych językach i wiemy, że wszystkie te dane będą analizowane nie raz, a kilka razy. Dlatego zbudowaliśmy TPU II generacji".
Co z konkurencją? Zapytany o rdzenie Tensor w nowych GPU Nvidia Volta Dean jedynie skomplementował architekturę. "Zdali sobie sprawę, że jednostka mnożenia macierzy jest bardzo ważna w rdzeniu. (...) Nasze pierwsze TPU poszło tą samą drogą, a układ II generacji jeszcze mocniej skupia się na akceleracji tych obliczeń. Przyspieszanie algebry liniowej jest bardzo dobrym pomysłem".
Źródło: http://www.eetimes.com/document.asp?doc_id=1331753
Starania Google mają na celu zebranie osób zainteresowanych systemami uczenia maszynowego i skupienie ich wokół usług chmurowych Google. Najlepiej, aby użytkownicy Ci korzystali z otwartego frameworka TensorFlow, dedykowanego do nowego TPU. Chmurowe TPU wspiera matematykę zmiennoprzecinkową, do korzystania z której zachęca Google w ramach tworzenia tak systemów uczenia jak i wnioskowania. Pierwsza generacja TPU tej firmy wspierała tylko zmienne całkowite.
Google pakuje cztery układy tego rodzaju do stworzonego przez siebie akceleratora. Co najmniej 64 układy tego rodzaju umieszczane są w dwuwymiarowej sieci o topologii torusa w pojedynczym "klastrze" który dostarcza do 11,5 petaflopa mocy obliczeniowej. Pierwszej generacji TPU instalowane były w komputerach PC - serwerach o architekturze x86 - w posytaci kart na PCI Express.
"Wiele osób, które zaangażowane było w rozwój pierwszej generacji TPU pracowało także przy jego drugiej iteracji. Druga generacja tych układów to już cały system, nie tylko pojedynczy układ do zainstalowania w komputerze" opowiada Jeff Dean z Google. "Wnioskowanie działać może z powodzeniem na jednym układzie, ale jeśli chodzi o trenowanie systemu - do tego wymagane jest więcej, potrzeba myślenia holistycznego" dodaje Dean.
Jak informuje Google, opracowany przez nich ASIC bez problemu pokonuje GPU w zakresie treningu sieci. Najnowszy model tłumaczenia języka Google aby w pełni nauczyć sieć wymaga całego dnia na 23 najnowszych GPU, jakie dostępne są na rynku. Dla porównania, wystarczy osiem TPU i sześć godzin, aby zrealizować to samo zadanie. Instalacja TPU w serwerach Google rozpoczęła się w 2015 roku z pierwszą generacją układów. Wykorzystywane są one w wielu usługach firmy, takich jak Translate czy Google Photos. Mimo to, sam układ zaprezentowany został dopiero w zeszłym roku na Google I/O. Jak informowała firma wyprodukowany w 28 nm procesie układ przy taktowaniu 700 MHz pobiera 40 W. TPU jest sprzętowym akceleratorem algorytmu o tej samej nazwie - TensorFlow - na pokładzie posiada 65536 8 bitowych jednostek akumulacyjnych i 24 mb pamięci cache. Dzięki temu jest w stanie wykonać 92 teraoperacje na sekundę. TPU I generacji działał od 15 do 30 razy szybciej niż procesory Intel Haswell czy GPU K80 produkowane przez Nvidię. Dodatkowo - wydajność na wat tego układu była od 30 do 80 razy większa. W aplikacjach wielkiej skali, jakie realizuje Google ma to ogromne znaczenie.
Dotychczasowo niewiele wiadomo o układzie II generacji i jego wydajności. Przedstawiciele Google wspominali, że pobór mocy bliższy jest 80 W i że układ wykorzystuje arytmetykę zmiennoprzecinkową. Duży pobór mocy potwierdzają ogromne radiatory zamontowane na układach prezentowanych przez Google. Aby za podwojeniem poboru prądu poszło (co najmniej) podwojenie mocy obliczeniowej w układzie trzeba by umieścić więcej pamięci. I generacja miała już 24 Mbity cache - tyle co niektóre procesory serwerowe. Czy udało się tam zmieścić więcej? Nie wiadomo. Być może pod ogromnymi radiatorami kryją się zewnętrzne układy pamięci HBM czy DRAM, ale firma nie informuje o takich detalach. Podobnie też Google milczy na temat interfejsów i innych detali systemu.
Pojedyncza jednostka w jakiej Google implementuje swoje nowe rozwiązanie zawiera 64 układy TPU nowej generacji, ale na zdjęciu widoczne jest o wiele więcej niż tylko same płytki z procesorami. Na pojedynczej płytce widzimy jeden duży, dwa średnie i osiem małych radiatorów. Co się pod nimi kryje? Nie wiadomo - mogą to być pamięci flash, interkonekty, switche lub inne elementy. Na zdjęciu widzimy jednostkę z 64 TPU, na którą składa się osiem płyt z czterema TPU II generacji na pokładzie. Jednakże na zdjęciach prezentowanych przez Google widzimy sporo wolnego miejsca w systemie - zmieściłoby się tam jeszcze drugie tyle układów TPU, ale może to być miejsce dla dysków SSD, serwerów x86 sterujących tym systemem lub inne elementy niezbędne do działania systemu.
Niezależnie co składa się na system popyt nań jest ogromny. Google implementuje mnóstwo swoich algorytmów na nowych TPU II generacji. Wiele modeli uczonych jest z wykorzystaniem tych układów, aczkolwiek nadal część sieci uczona jest na systemach opartych na GPU. "Z czasem najpewniej przejdziemy na coraz większe wykorzystanie TPU. To sprawi, że nasz cykl pracy będzie szybszy - te same obciążenia na TPU będą pracowały szybciej niż na GPU" komentował Dean.
Gdy spojrzymy na moduły Google od boku dostrzeżemy masywne systemy chłodzenia - wentylatory i radiatory. Sugeruje to, że układy zużywają sporo mocy. Musi to oznaczać, że dostarczają też istotnie więcej mocy obliczeniowej, aby się to po prostu opłacało, szczególnie że Google zaczął udostępniać platformę innym. TensorFlow Research Cloud to ogólnodostępna usługa w chmurze dla wszystkich, którzy chcą wykorzystywać TPU do swoich obliczeń. Jedyne warunki to otwarte publikacje wyników, jak i uwolnienie źródeł wykorzystywanych aplikacji.
Wraz z nowymi TPU Google wypuścił nową wersję - 1.2 - frameworku TensorFlow. Zawarto w nim między innymi nowe API, które pozwoli w prostszy sposób wykorzystywać zalety uczenia we własnych aplikacjach - nawet jeśli ich twórcy mają ograniczone doświadczenie w sieciach neuronowych.
Jak mówi Fei-fei Li z Googlem "Dołączyłem do Google kilka miesięcy temu z misją zapewnienia każdemu dostępu do AI w celu rozwiązywania problemów w innowacyjny sposób, bez względu na to jakie ma umiejętności". I istotnie udało się to, dzięki nowemu API. Analogiczną inicjatywę profesor Li prowadzi na uniwersytecie Stanforda, gdzie wykłada. Takie podejście sprawia, że inni dostawcy usług obliczeniowych i uczenia maszynowego czują naciski, aby udostępnić swoje zasoby na niekomercyjnych zasadach. "Za każdym razem gdy widzę Satyę Nadella (CEO Microsoftu - przyp.red.) przypomina mi on temat inicjatywy uczynienia narzędzia do AI bardziej demokratycznymi" komentuje Peter Lee, szef Microsoft Research. Starania tej firmy skupiają się obecnie wokół wykorzystania układów FPGA.
Google jednakże ma zamiar pozostać sprzętowo agnostyczny - algorytmy opracowywane przez firmę uruchamiać można tak na usługach TPU jak i na komputerach x86 czy układach GPU, jak podkreśla Li. Jedną z firm, która korzysta z usług Google w zakresie uczenia maszynowego jest eBay.
Jakkolwiek Google umożliwia sprzętową elastyczność, to pamiętać trzeba, że "dostępne komercyjnie układy to za mało" jak mówi Dean. "Nasze systemy nie przeszły jeszcze nawet przez 1/6 danych językowych w niektórych językach i wiemy, że wszystkie te dane będą analizowane nie raz, a kilka razy. Dlatego zbudowaliśmy TPU II generacji".
Co z konkurencją? Zapytany o rdzenie Tensor w nowych GPU Nvidia Volta Dean jedynie skomplementował architekturę. "Zdali sobie sprawę, że jednostka mnożenia macierzy jest bardzo ważna w rdzeniu. (...) Nasze pierwsze TPU poszło tą samą drogą, a układ II generacji jeszcze mocniej skupia się na akceleracji tych obliczeń. Przyspieszanie algebry liniowej jest bardzo dobrym pomysłem".
Źródło: http://www.eetimes.com/document.asp?doc_id=1331753
Fajne? Ranking DIY