Inżynierowie znaleźli sposób na szybsze projektowanie chipów dedykowanych sztucznej inteligencji. Użyli do tego… sztucznej inteligencji
W naszym portalu pisaliśmy o modelu sztucznej inteligencji, który dramatycznie przyspiesza proces projektowania leków. Żmudny proces opracowywania molekuł o konkretnych właściwościach może trwać miesiącami, a nawet latami. Wsparcie algorytmów może go przyspieszyć nawet do kilku tygodni.
Podobnie żmudnym procesem jest projektowanie chipów dedykowanych do obliczeń związanych z sieciami neuronowymi. Składają się one z milionów, a nawet miliardów elementów, które trzeba rozplanować tak, by zapewniały maksymalną wydajność przy jak najmniejszym zużyciu energii. Eksperci z Google’a znacząco przyspieszyli ten proces z pomocą uczenia maszynowego.
Etapy projektowania chipu opisuje magazyn „Discover”.
Zaczyna się od tego, że projektanci określają podstawowe parametry chipu, a następnie projektują przepływ danych i operacje logiczne, które mają być na nim przeprowadzane. Rezultatem jest bardzo złożona sieć bramek logicznych oraz ich powtarzalnych kombinacji, zwanych makrami. Ta sieć może się składać z milionów elementów i nosi nazwę netlisty.
Kolejny krok to zaprojektowanie fizycznego rozkładu elementów netlisty na powierzchni chipu w taki sposób, by pobierał jak najmniej prądu. Osiąga się to przez takie ułożenie elementów, by długość połączeń między nimi była minimalna. To proces polegający na wielokrotnych modyfikacjach projektu i energochłonnym oraz czasochłonnym przeliczaniu parametrów chipu.
I w tym właśnie miejscu ekipa Google’a postanowiła sprawdzić, czy nie lepiej poradziłoby sobie z tym uczenie maszynowe. Efekt swoich badań inżynierowie opisali w pracy „Chip Placement with Deep Reinforcement Learning”.
Zaczęli od algorytmu, który rozmieszcza wszystkie zadane komponenty chipu na jego powierzchni. Program zaczyna od makr, czyli skupisk bramek logicznych o znanej funkcjonalności, mających zwykle kształt prostokąta. Rozmieszcza je od największego do najmniejszego. Potem przychodzi czas na resztę elementów, które zostają umieszczone w przestrzeni pomiędzy makrami w postaci sieci, którą można sobie wyobrazić jako węzły połączone elastycznymi sprężynami. Algorytm następnie „puszcza” węzły, pozwalając sprężynom ściągnąć je do siebie, ograniczając w ten sposób długość połączeń. Powstaje projekt chipu.
Następnie system oblicza odległości między połączeniami i inne parametry chipu, na przykład niepożądaną obecność wąskich gardeł, czyli ciasnych przestrzeni przez które musi przejść wiele połączeń.
Zespół stworzył w ten sposób bazę danych 10 tysięcy projektów, wraz z ich wyjściowymi parametrami. Została ona użyta do wyszkolenia modelu uczenia maszynowego, który potrafi przewidzieć parametry jakiegoś projektu, a następnie uczy się modyfikować go tak, by te parametry były lepsze.
Algorytm Google’a nauczył się nawet stosować strategie, które architekci chipów intuicyjnie stosowali od dawna, na przykład rozmieszczanie dużych elementów na zewnątrz chipu.
Efektem pracy zespołu był system, który w zaledwie sześć godzin potrafi zamienić netlistę w projekt działającego chipu. Tradycyjnie ten proces zająłby kilka tygodni.
Nowe rozwiązanie będzie miało zastosowanie przede wszystkim w produkcji wysoce wyspecjalizowanych chipów na potrzeby sztucznej inteligencji, co może się przyczynić do jeszcze szybszego postępu technologicznego w tej dziedzinie.