SpiNNaker - нейронний комп'ютер

Прочитавши нещодавно опубліковану статтю «Огляд сучасних проектів великомасштабного моделювання мозкової активності», хотілося б розповісти про інший подібний проект, що проводиться науковою групою Манчестерського Університету у Великобританії під керівництвом професора

Стіва Фурбера (Steve Furber), творця BBC Microcomputer і 32-бітного ARM RISC мікропроцесора, а також засновника компанії ARM.

Екскурс в історію досліджень Манчестерського Університету

Університет має видатну історію розробок обчислювальних машин і зіграв революційну роль у розвитку інформатики та штучного інтелекту. Перший у світі електронний комп'ютер під назвою SSEM, також відомий як «Baby», відмінною характеристикою якого було спільне зберігання даних і програм в пам'яті машини (іншими словами, відповідність фон Неймановській архітектурі), був створений в 1948 році Фредеріком Вільямсом і Томом Кілберном. Сам пристрій було створено не стільки для обчислювальних цілей, скільки для вивчення властивостей комп'ютерної пам'яті на електронно-променевих трубках (інакше «трубках Вільямса»).

Успіх експерименту спонукав до створення наступного року Манчестерського Марка 1 (Manchester Mark 1), який вже мав пристрій для читання і запису перфоленти, що дозволяє проводити введення/виведення з магнітного барабана без безпосередньої зупинки програми. Також в Марке 1 вперше в світі були застосовані індексні регістри. Двома роками пізніше там же був розроблений перший у світі комерційний універсальний комп'ютер Ферранті Марк 1 (Ferranti Mark 1). Ці обчислювальні машини стали прабатьками майже всіх сучасних комп'ютерів.

В експериментах з «Baby» і Марком 1 брав безпосередню участь Алан Тьюрінг, один з основоположників обчислювальної техніки і штучного інтелекту. Тьюрінг вважав, що комп'ютери зрештою зможуть мислити як людина. Результати своїх досліджень він опублікував у статті «Обчислювальні машини і розум», в якій зокрема був запропонований уявний експеримент (який став відомим як тест Тьюрінга), що полягає в оцінюванні здатності машини мислити: чи здатна людина, розмовляючи з невидимим співрозмовником, визначити, чи спілкується вона з іншою людиною або штучним пристроєм.

Мотиви проекту

Тест Тьюрінга і запропонований у ньому підхід моделювання мислення досі не був вирішений і залишається предметом гострих наукових дискусій. Основними недоліками сучасних комп'ютерів, що відрізняють їх від мозку живих істот, є їх нездатність до самонавчання і нестійкість до апаратних збоїв, коли при поломці одного компонента вся система виходить їх ладу. До того ж, сучасні комп'ютери фон Нейманівської архітектури не володіють низкою можливостей, з легкістю виконуваних людським мозком, таких як асоціативна пам'ять і здатність вирішувати завдання класифікації та розпізнавання об'єктів, кластеризація або прогнозування.

Іншою причиною популярності подібних проектів є наближення до фізичної межі збільшення потужності мікропроцесорів. Гіганти індустрії визнають, що подальше збільшення кількості транзисторів не призведе до значного збільшення швидкості процесора, а логіка підказує збільшити кількість самих процесорів у мікросхемах, іншими словами застосувати шлях масового паралелізму.

Дилема полягає в тому, чи необхідно збільшити до крайності потужність мікропроцесорів і лише потім встановити якомога більшу кількість таких процесорів в кінцевий продукт, або слід використовувати спрощені процесори, здатні виконувати елементарні математичні операції. При можливості поділу завдання на довільну кількість значною мірою незалежних підзавдань, виграє система, побудована відповідно до останнього принципу.

Цілі проекту SpiNNaker

Вищеописані мотиви рухають науково-дослідною групою, що працює над проектом під назвою SpiNNaker (Spiking Neural Network Architecture). Мета проекту є створення пристрою з досить високою стійкістю до збоїв, що досягається шляхом поділу обчислювальної потужності на n-ну кількість частин, що виконують найпростіші підзадачі. Причому при відмові будь-якої з таких частин система продовжує коректно функціонувати, лише переконфігурувавши себе таким чином, щоб виключити ненадійний вузол, перерозподіляючи його обов'язки на сусідні вузли і знаходячи альтернативні «синаптичні» зв'язки для передачі сигналів. Щось схоже відбувається в людському мозку, адже приблизно кожну секунду людина втрачає по нейрону, але це мало відбивається на його здатності мислити.

Іншою перевагою створюваної системи є її здатність до самонавчання, відмінною рисою нейронних мереж. Таким чином, така машина допоможе вченим дізнатися про процеси, що відбуваються в корі головного мозку і поліпшити розуміння складної взаємодії клітин мозку.

На першій стадії проекту планується симулювати в реальному часі до 500 000 нейронів, що приблизно відповідає кількості нейронів у мозку бджоли. На кінцевій стадії проекту передбачається, що пристрій буде здатний змоделювати до мільярда нейронів, що приблизно дорівнює кількості нейронів в людському мозку.

Архітектура системи

Примітний сам підхід до проектування обчислювальної машини. Пропонований пристрій складається з регулярної матриці з 50 чіпів. Кожен чіп має 20 мікропроцесорів ARM968, причому 19 з них виділені безпосередньо на моделювання нейронів, а решта контролює роботу чіпа і веде лог активності.

Ріс. 1. Системна діаграма

Кожен такий чіп є завершеною підсистемою зі своїм маршрутизатором, внутрішньою синхронною динамічною ОЗУ з режимом прямого доступу (32 Кбайта для зберігання команд і 64 Кбайта для зберігання даних) і своєю власною системою передачі повідомлень з пропускною здатністю в 8 Гбіт в секунду. До того ж кожен чіп має 1 Гбайт зовнішньої пам'яті для зберігання топології мережі. За твердженням розробників, співвідношення центрального процесора, внутрішньої пам'яті і засобів передачі даних дозволяють моделювати до 1 000 нейронів у кожному мікропроцесорі в реальному часі.

Особливістю цієї системи є повна відсутність синхронізації. Кожен нейрон, при досягненні певного внутрішнього стану, шле сигнал постсинаптичному нейрону, який відповідно відправляє або не відправляє (залежно від свого внутрішнього стану) новий сигнал подальшому нейрону.

Варта уваги можливість переконфігурації нейронної мережі під час робочого циклу. Таким чином це дозволяє ізолювати несправні вузли, а також створюючи можливість формування нових зв'язків між нейронами і ймовірно навіть дозволяючи з'являтися, по мірі необхідності, новим нейронам.

До безпосереднього початку самої симуляції конфігураційний файл завантажується в систему, визначаючи розташування нейронів і початкові дані мережі. Такий спосіб завантаження даних вимагає наявність найпростішої операційної системи на кожному чіпі. У робочому стані машині необхідна постійна подача інформації на вході, а результат подається на вихідний пристрій.

Ріс. 2. Тестовий чіп

Виникає необхідність у системі моніторингу за процесами всередині самої машини для підтримки, виправлення помилок і ручної реконфігурації системи. Для цієї мети передбачено можливість ручної зупинки машини зі збереженням поточного стану мережі і після (у міру необхідності) відповідних змін завантаження вже нових конфігурацій.

Перспективи

Незважаючи на те, що першорядне призначення машини спрямоване на моделювання нейронних мереж, нарівні існує можливість її використання в інших різноманітних додатках, що вимагають великої обчислювальної потужності, як protein folding, дешифрації або пошуку в базах даних.