fbpx
12.9 C
София

Защо TPU е толкова подходящ за дълбоко машинно обучение

Най-четени

Даниел Десподов
Даниел Десподовhttps://www.kaldata.com/
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

От Каз Сейто

Тензорният процесор е интегрална схема със специално приложение (ASIC), разработена буквално от нулата от компанията Google. Тя е предназначена за различните алгоритми за машинно обучение. Чипът се използва в няколко основни продукта на Google, включително Translate, Photos, Search Assistant и Gmail. Облачният тензорен процесор (TPU) осигурява преимущества като мащабируемост и лекота на използване. По време на конференцията Google Next ‘18 ние зявихме, че Cloud TPU v2 вече е достъпен за всички потребители, включително и с безплатни пробни акаунти. Новият Cloud TPU v3 вече е достъпен за алфа тестове.

Но изключително много хора питат, каква е разликата между CPU, GPU и TPU? Ние направихме демонстрационен сайт, в който са качени презентация и анимация, отговарящи на този въпрос. Нека се спрем малко по-подробно на някои особености при тези процесори.

Как работят невронните мрежи

Преди да започнем сравнението между CPU, GPU и TPU, да разгледаме какъв тип изчисления се използват в машинното обучение и по-конкретно, в невронните мрежи.

Представете си, че използваме еднослойна невронна мрежа за разпознаване на ръкописни цифри, както е показано в следващото изображение.

Ако за изображението използваме мрежа с размер 28х28 пиксела от скалата на сивото, то тя може да бъде преобразувана във вектор от 784 значения, които понякога се наричат измерения. Невронът, разпознаващ например цифрата 8, приема тези значения и ги умножава със значенията на параметъра (червените линии на изображението).

Въпросният „параметър“ всъщност работи като филтър, който извлича характерните особености на данните. Тези особености съдържат информацията за сходствата в изображенията.

Това е най-простото обяснение на класификацията на данните от невронните мрежи. Използват се действията умножение на данните със съответните параметри (цвета на точките) и тяхното математическо събиране (сумата на точките отдясно). Най-високият резултат означава най-добро съвпадение с въведените данни, и съответният параметър е и най-правилният отговор.

По-просто казано, в невронните мрежи се извършва огромен брой умножения и събиране на данни и параметри. Използва се предимно умножение на матрици, което се изучава в училище в уроците по алгебра. Проблемът тук е, че трябва да се извършват огромен брой матрични умножения, при това възможно най-бързо, но и с най-малка консумация на електрическа енергия.

Как работи CPU

Как можем да използваме стандартния централен процесор за решаването на тази задача? CPU се базира на архитектурата на Фон Нойман и неговата работа съвсем опростено може да бъде показана по следния начин:

Главното преимущество на CPU е неговата гъвкавост. Благодарение на архитектурата на Фон Нойман, процесорът може да изпълнява съвсем различни програми за милиони различни цели и задачи. CPU се използва за обработката на текст, за управление на ракетни двигатели, за изпълняването на банкови транзакции, както и за класифициране на изображенията, разпознати от невронната мрежа.

Но именно защото CPU е толкова гъвкав, почти никога не се знае каква ще бъде следващата процесорна инструкция на програмата. Този процесор трябва да съхранява резултатите от всяко изчисление в памет, разположена в чипа. Това са така наречените регистри или кеш памет от първо ниво. Достъпът до тази памет e минус в архитектурата на CPU, известeн като тясното място в архитектурата на Фон Нойман. И въпреки че огромният брой изчисления за невронните мрежи прави предсказуеми следващите стъпки, всяко аритметично логическо устройство (АЛУ или ALU) на CPU със своите множители и суматори, изпълнява всички операции последователно, като всеки път се обръща към паметта за инструкции и данни. Това ограничава пропускателната способност и по този начин се консумира много електрическа енергия.

Как работи GPU

За увеличаване на пропускателната способност в сравнение с CPU, графичният процесор използва съвсем опростен стратегия: защо в процесора да не поставим хиляди ALU? В съвременния GPU има около 2500-5000 ALU, което дава възможност за едновременното извършване на хиляди умножения и събирания.

Тази архитектура работи много добре с приложенията, използващи масова паралелизация, като например умножение на матрици в невронните мрежи. При типичния процес на обучение на невронната мрежа, пропускателната способност е над 10 пъти по-висока в сравнение с CPU. Ето защо към днешен ден GPU е най-популярната процесорна архитектура за дълбоко машинно обучение.

Но GPU си остава процесор с общо предназначение, който трябва да поддържа милиони различни приложения и най-разнообразен софтуер. А това отново ни връща към фундаменталния проблем за тясното място в архитектурата на Фон Нойман. За всяко изчисление в хилядите ALU, графичният процесор трябва да осъществи достъп до регистрите или общата памет, за да запише или прочете междинните данни от изчисленията. Но понеже GPU извършва огромен брой паралелни изчисления в своите ALU, той изразходва пропорционално повече енергия за самите изчисления и за достъпа до паметта, и това е и причината кристалът да графичния процесор да заема толкова голяма площ.

Как работи TPU

Когато разработвахме в Google новия TPU, ние създадохме архитектура, предназначена за извършването на точно определена задача. Вместо да правим поредния процесор с общо предназначение, ние разработихме матричен процесор, специално за работа в невронните мрежи. TPU не може да се използва в текстовите редактори, не може да управлява ракетни двигатели и да осъществява банкови транзакции. Но той може да извършва огромен брой умножения и събирания за невронните мрежи с невероятна скорост. При това неговият размер е малък, а консумацията на електрическа енергия ниска.

Главната особеност на TPU е радикалното премахване на тясното място в архитектурата на Фон Нойман. Понеже основната задача на TPU е обработването на матрици, разработчиците предварително знаят абсолютно всички необходими стъпки за извършване на изчисленията. Ето защо те решиха да поместят на кристала хиляди множители и суматори, които са физически съединени. По този начин се формира една огромна хардуерна матрица. В случая с Cloud TPU v2 се използват два масива с размерност 128х128, които общо имат 32 768 ALU за 16-битови значения с плаваща запетая в един процесор.

Да погледнем, по какъв начин този масив извършва пресмятанията в невронната мрежа. Първоначално TPU зарежда параметрите от паметта в матрицата от множители и суматори.

След това TPU зарежда данните от паметта. При извършването на всяко умножение, резултатът се подава на следващия множител, като всички умножения се извършват паралелно. На изхода се получава резултатът от всички необходими умножения на данните и параметрите. По време на целия този процес изобщо не се налага какъвто и да било достъп до памет.

Ето защо TPU демонстрира много по-голяма пропускателна способност в невронните мрежи, като консумира по-малко енергия и заема по-малко място.

Основно преимущество: 5 пъти по-ниска цена

Какви преимущества има TPU? На първо място е цената. Ето колко струва работата на Cloud TPU v2 към месец август 2018 година:

В таблицата са сравнени цените на стандартните и TPU изчисленията за различни сектори на Google Cloud.

Станфордският университет предлага серията тестове DAWNBench, измерващи бързодействието на компютърните системи с дълбоко машинно обучение. Там могат да бъдат разгледани резултатите от различните комбинации от задачи и модели за различните дигитални платформи.

През месец април 2018 година минималната себестойност на тренирането на невронна мрежа с архитектура, различна от TPU, струваше $72,40. С помощта на Cloud TPU v2 същата тренировка струва $12,87. Това е по-малко от 1/5 от себестойността. Именно това е силата и мощността на архитектурата, специално предназначена за невронните мрежи.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iOS и Huawei!

Абонирай се
Извести ме за
guest

1 Коментар
стари
нови оценка
Отзиви
Всички коментари

Нови ревюта

Подобни новини