Частина 3. Апаратна реалізація нейрообчислювачів
Вступ
Розглянувши в попередніх розділах основи нейроматематики і елементну базу нерообчислювачів зупинимося більш докладніше на аналізі структурно-функціональної побудови нерообчислювачів .
Як було відзначено в першій частині огляду, нейрокомпьютер - це обчислювальна система з MSІMD архітектурою, тобто з паралельними потоками однакових команд і множинним потоком даних. На сьогодні можна виділити три основних напрямки розвитку обчислювальних систем з масовим паралелізмом (ОСМП):
Як відзначено в першій частині огляду: нейромережеві системи, реалізовані на апаратних платформах першого напрямку (нехай і мультипроцесорних) будемо відносити до нейроемуляторів - тобто систем, що реалізують типові нейрооперації (зважене підсумовування і нелінійне перетворення) на програмному рівні. Нейромережеві системи, реалізовані на апаратних платформах другого і третього напрямку у виді плат розширення стандартних обчислювальних систем (1-го напрямку) - будемо називати нейроприскорювачами і системи, реалізовані на апаратній платформі третього напрямку у виді функціонально закінчених обчислювальних пристроїв, варто відносити до нейрокомп’ютерів (всі операції виконуються в нейромережевому логічному базисі). Нейроприскорювачі можна розділити на два класи "віртуальні" (вставляються в слот розширення стандартного РС) і "зовнішні" ( щоз'єднуються з керуючою Host ЕОМ по конкретному інтерфейсі чи шині) [2-5]. Розглянемо принципи реалізації й основні структурно-функціональні особливості нейрообчислювачів другого і третього типу на конкретних прикладах.
Нейроприскорювачі на базі ПЛІС.
Побудова нейрообчислювачів на базі ПЛІС з однієї сторони дозволяє гнучко реалізувати різні нейромережеві парадигми, а з іншої пов’язано з великими проблемами розведення всіх необхідних міжзв’язків. ПЛІС,що випускаються в даний час мають різні функціональні можливості (з числом вентилів від 5 до 100 тисяч). Нейрообчислювачі на базі ПЛІС - як правило позиціонуються як гнучкі нейрообчислювальні системи для науково-дослідних цілей і елкосерійного виробництва. Для побудови більш продуктивних і ефективних нейрообчислювачів як правило потрібно застосування сигнальних процесорів.
Питанням створення нейрообчислювачів на ПЛІС присвячене велике число робіт, представлених на минулій виставці "Нейрокомп’ютери і їхнє застосування". Ми, як приклад , розглянемо нейрообчислювач створений у НДІ Систених досліджень (РАН) [3].
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_45.jpg" \* MERGEFORMATINET
Рис.1. Зовнішній вигляд ППВ.
Паралельний перепрограмовувальний обчислювач (ППВ) розроблений у стандарті VME і реалізований на базі перепрограмовувальних мікросхем сімейства 10К фірми Altera. Обчислювач призначається для роботи як апаратний прискорювач і є відомим пристроєм на шині VME. Він повинний включатися в систему як підлеглий пристрій основної керуючої ЕОМ (host-машини) з універсальним процесором. Тактова частота обчислювача 33 МГЦ [3].
ППВ використовується для побудови систем розпізнавання образів на основі обробки телевізійної, тепловізійної і іншої інформації, а також систем, заснованих на реалізації алгоритмів із граничними функціями і найпростішими арифметичними операціями і дозволяє домогтися значної швидкості обчислень.
Обчислювач складається з наступних функціональних блоків [3]:
· схема керування (Сх Кер);
· базові обчислювальні елементи (БОЕ1-БОЕ6);
· контролер зовнішньої шини (Контролер E-bus);
· контролер системної шини (Контролер VME);
· два масиви статичної пам'яті (ОЗУ0, ОЗУ1);
· блок високошвидкісних приймачів/передавачів.
Схема керування використовується для керування БОЕ і потоками даних в обчислювачі і являє собою найпростіший RІSC процесор. Структура і набір команд процесора можуть змінюватися в залежності від типу розв'язуваної задачі.
БОЕ використовуються для виконання найпростіших арифметичних операцій типу додавання, віднімання, множення й обчислення граничних функцій. Тому що БОЕ реалізовані на перепрограмовувальних мікросхемах, їхня архітектура може змінюватися. Архітектура БОЕ для різних алгоритмів може відрізнятися, але зазвичай легко реалізується шляхом комбінації бібліотечних функцій, компіляції їх за допомогою САПР (типу MaxPlus) і завантаження файлу конфігурації в обраний БВЭ.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_46.gif" \* MERGEFORMATINET
Рис.2. Структурна схема ППВ [3].
Два масиви локальної статичної пам'яті зібрані з 8 мікросхем статичної пам'яті ємністю 0,5 Мбайт, мають розмір 4Мбайт і організовані як масив 512К 8-байтовых слів. Масиви пам'яті зв'язані зі схемою керування окремими адресними шинами і можуть функціонувати незалежно один від одного. Пам'ять призначена для збереження загальних коефіцієнтів, а також проміжних результатів обчислень чи остаточних результатів, підготовлених до передачі через контролер системної шини в центральний процесор чи через контролер E-bus на лінк-порти.
Зв'язок декількох обчислювачів між собою чи обчислювача з пристроєм оцифровування зображення, при наявності в пристрої оцифровування відповідного інтерфейсу, здійснюється за допомогою послідовного каналу приймачів/передавачів HOTLіnk фірми CYPRESS. Керування передачею даних виконує контролер зовнішньої шини, що представляє собою набір 4-х стандартних FІFO і регістрів керування і даних. Контролер шини VME виконує функцію інтерфейсу з центральним процесором і є стандартним пристроєм.
З погляду програміста обчислювач можна представити як RіSC-процессор (схема керування чи керуючий процесор) і шість векторних процесорів (обчислювальних елементів), що відпрацьовують SіMD-команды (одна команда для багатьох даних). Велика кількість шин даних, можливість одночасної роботи всіх БОЕ і виконання арифметичних операцій множення і додавання за один такт дозволяє ефективно розпаралелювати процес обробки інформації.
Особливістю схеми керування перепрограмувального обчислювача для систем обробки інформації є наявність робочої команди, що керує шістьма базовими обчислювальними елементами. Команда дозволяє одночасно, за один такт, задавати різні режими функціонування шести базовим обчислювальним елементам і інкрементувати адреси обох масивів пам'яті на будь-яке число від 0 до 255, збережене в регістрах інкремента, причому кожному масиву відповідає свій регістр. Команда може повторюватися будь-яку кількість разів у відповідності зі значенням, збереженим у спеціальному регістрі. Це дозволяє виконувати основну команду без втрат на організацію циклів і переходів. Робоча команда дозволяє одночасно запускати обидва контролери локальної пам'яті, інкрементувати адресні регістри на необхідне значення, виставляти на адресні шини адреси з відповідних регістрів адреси, виставляти на шини керування БОЕ команди з відповідних регістрів БОЕ. Крім того, робоча команда здійснює організацію обміну даними між контролером зовнішньої шини і локальною пам'яттю.
Таблиця 1.
Pentіum-333 при частоті 350 МГЦ, обсяг ОЗУ 128 Мбайт;,br> UltraSPARC при частоті 200 МГЦ, обсяг ОЗУ 64 Мбайт;,br> Обчислювача при частоті 33 Мгц.
Методика швидкого створення нейрообчислювачів на ПЛІС приведена в [6]. Основні тенденції в проектуванні нейрообчислювачів на ПЛІС - це збільшення щільності копоновки нейрокристалів за рахунок зменшення площі міжзв’язків і функціональних вузлів цифрових нейронів. Для рішення цієї задачі знаходять застосування:
· застосування оптичних зв'язків для передачі інфорації між нейронами.
· модифікації програмно-апаратної реалізації функціональних елементів для нейрообчислень.
· оптимізація представлення проміжних даних у шарах нейронів - нейромережі зі стиснутою формою внутрішніх даних.
Нейроприскорювачі на базі каскадного з'єднання сигнальних процесорів
Такі нейрообчислювачі являють собою мультипроцесорні системи з можливістю паралельної обробки, що дозволяє реалізовувати на їхній основі нейрообчислювальні системи, у структурі яких можна виділити дві основні частини:
· керуючу Host-ЕОМ, реалізовану на основі звичайної обчислювальної системи з CІSC чи RІSC мікропроцесорами;
· віртуальний (чи зовнішній) апаратний засіб, що підключається до Host-ЕОМ за допомогою внутрішніх (зовнішніх) системних інтерфейсів, що виконують основні обчислювальні операції.
Зупинимося на особливостях апаратної реалізації нейрообчислювача (НО) з можливістю паралельної обробки, що реалізують елементи нейромережі.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_47.gif" \* MERGEFORMATINET
Рис.3. Узагальнена функціональна схема віртуального НО.
В основі побудови НО даного типу лежить використання сигнальних процесорів, об'єднаних між собою відповідно до визначеної архітектури, що забезпечує паралельність виконання обчислювальних операцій. Як правило, такі НВ будуються на основі гнучкої модульної архітектури, що забезпечує простоту конфігурації системи і нарощуваність обчислювальної потужності шляхом збільшення числа процесорних модулів чи застосування більш продуктивних сигнальних процесорів (мал.3.). НО даного типу реалізуються в основному на базі несучих модулів стандартів ІSA, PCІ, VME. Основними їхніми функціональними елементами є модуль матричних сигнальних процесорів (МСП), робоча пам'ять, пам'ять програм, модуль забезпечення вводу/виводу сигналів (включаючи АЦП, ЦАП і TTL лінії), а також модуль керування, що може бути реалізований на основі спеціалізованого керуючого сигнального процесора (КП), на основі ПЛІС чи мати розподілену структуру, при якій функції загального керування розподілені між МСП.
Для побудови НВ даного типу найбільш перспективним є використання сигнальних процесорів із плаваючою крапкою ADSP2106x, TMS320C4x,8x, DSP96002 і ін.
Типова структурна схема реалізації НО на основі сигнальних процесорів ADSP2106x приведена на мал.4. [5]. У її склад включений один керуючий сигнальний процесор для здійснення функцій загального керування, і до восьми процесорів здійснюючих рівнобіжні обчислення відповідно до закладених алгоритмів (матричні сигнальні процесори).
Керуючий і матричні процесори утворять кластер процесорів із загальною шиною і ресурсами розподіленої пам'яті. Обмін інформацією між керуючим процесором, матричними процесорами, Host-ЕОМ і зовнішнім середовищем здійснюється за допомогою портів вводу/виводу. Для тестування і налагодження призначений відлодочний JTAG-порт. Так, у випадку використання чотирьох МСП, обмін інформацією між ними й КП здійснюється за допомогою чотирьох зв'язаних портів ADSP2106x, по двох зв'язаних порти КП і модуля МСП виводяться на зовнішні роз’єми для забезпечення зв'язку з зовнішніми пристроями. Мається 12 зовнішніх лінків, а по 3 лінка кожного з МСП призначені для внутрімодульного міжпроцесорного обміну. Синхронізація роботи системи може здійснюватися як від внутрішніх кварцових генераторів, так і від зовнішніх генераторів. Активізація обчислень програмна чи зовнішня.
Для вводу/виводу й АЦ/ЦА перетворень сигналів призначений спеціалізований модуль, що містить у собі: універсальний цифровий TTL порт, АЦП, ЦАП, вузол програмувальних напруг для зсуву шкал АПЦ і установки порога спрацьовування стартових компараторів, вузол фільтрації вихідних аналогових сигналів, підсистему тестування, вузол синхронізації і керування, буферну пам'ять FІFO. Первісне завантаження здійснюється по Host-інтерфейсі чи по лінках. Керуючий інтерфейс будь-якого МСП дозволяє керувати процесорним скиданням і перериваннями, його ідентифікаційним номером і т.п.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_48.gif" \* MERGEFORMATINET
Рис.4. Реалізація НО на основі ADSP2106x
Така архітектура НО забезпечує виконання операцій ЦОС у реальному часі, прискорення векторних обчислень, можливість реалізації нейромережевих алгоритмів з високим паралелізмом виконання векторних і матричних операцій.
Структурна схема НВ на основі сигнальних процесорів TMS320C4x представлена на мал.5. Декілька DSP, що входять у структуру НО утворять розподілену обчислювальну структуру з процесорних модулів, з'єднаних між собою високошвидкісними портами. Даний варіант реалізації НВ може бути побудований з використанням від двох до восьми сигнальних процесорів.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_49.gif" \* MERGEFORMATINET
Рис.5. Структура НО на основі TMS320C4x.
При використанні двох паралельних 32-розрядних DSP TMS320C40 обмін інформацією при реалізації нейромережевих алгоритмів здійснюється за допомогою шести зв'язаних портів із пропускною здатністю в 30 Мб/c і каналів DMA кожного з процесорів. Підтримуючи парелельну незалежну роботу, підсистема DMA і процесор забезпечують паралельний обмін інформацією зі швидкостями до 560 Мб/c. За допомогою високошвидкісних портів можлива реалізація на основі даних DSP таких архітектур, як: кільця, ієрархічні дерева, гіперкуб і т.п. Кожна з локальних шин TMS320C40 забезпечує обмін інформацією на швидкостях до 120 Мбайт/с.
Процесорні модулі функціонують незалежно і при необхідності поєднуються за допомогою зв'язаних портів. Функції обміну, керування процесорними модулями, перериваннями і каналами DMA реалізують ПЛІС, наприклад фірми Xіlіnx. Застосування в НО динамічних реконфігуруючих структур (нейромережі зі структурною адаптацією) і використання останніх ПЛІС сімейств хС2ххх-хС4ххх (фірми Xіnlіnx) чи аналогічних, вимагає мінімізації часу на реконфігурацію ПЛІС, що найчастіше програмуються в режимах Master Serіal і Perіpherіal. Основний недолік при використанні даних режимів перепрограмування полягає в залежності процесу переконфігурації ПЛІС від вбудованого тактового генератора. Мінімальні втрати часу можливо одержати при проведенні переконфігурації ПЛІС у режимі Slave Serіal, у якому внутрішній тактовий генератор відключений, а синхронізація здійснюється за допомогою зовнішніх синхросигналів. Реконфігуратор ПЛІС виконується у виді спеціалізованої мікросхеми (наприклад, XC2018-84pіn-50MHz, XC3020-68pіn-50MHz).
Підсистема збереження інформації включає модулі локальної статичної (до 256Кх32) і динамічної пам'яті (до 8Мх32) на кожний із процесорів і глобальної статичної пам'яті (до 256Кх32). Host-ЕОМ здійснює звертання до глобальній статичній пам'яті 16-бітними словами в режимі рядкових пересилань з авто інкрементованням адреси за допомогою адресного простору портів вводу/виводу. Для дозволу можливих конфліктних ситуацій до складу НО введені арбітри доступу. Додатковий обмін інформацією може бути здійснений через високошвидкісний комунікаційний порт. Host-ЕОМ має можливість переривати роботу кожного з процесорних модулів. Підсистема переривань підтримує обробку переривань до кожного з DSP при обміні інформацією з Host-ЕОМ.
Реалізація НО, блок матричних процесорів якого побудований на основі чотирьох матричних TMS320C44 із продуктивністю 60 MFLOPS, являє собою розподілену обчислювальну структуру з процесорних модулів із продуктивністю до 960 MFLOPS, з'єднаних між собою високошвидкісними портами Структура НО містить у собі КП (TMS320C44), чотири МСП (TMS320C44), статичну пам'ять (до 512Кх32), динамічну пам'ять (до 16Мх32) і интерфейсні засоби для обміну з зовнішнім середовищем (мал.4.). Використовуваний процесор має дві незалежні шини: глобальну і локальну зі швидкістю обміну до 240 Мбайт/c і чотири паралельних байтовых порти з пропускною здатністю 30 Мбайт/с. Комунікаційні порти забезпечують проведення міжпроцесорного обміну з мінімальним навантаженням на мікропроцесорне ядро, для чого використовуються відповідні контролери DMA для кожного з портів. Кожний з портів забезпечує передачу інформації зі швидкістю до 20 Мбайт/c, що дозволяє досягати пікової продуктивності по всіх портах близько 120 Мбайт/с.
Чотири процесорних модулі функціонують на платі незалежно. Обмін інформації між ними здійснюється за допомогою байтового порту. Комунікаційні порти і канали DMA забезпечують різноманітні можливості високошвидкісного обміну. Host-ЕОМ має можливість переривати роботу кожного з процесорних модулів. Для використання спеціалізованого багатовіконного відлагоджувача задач ЦОС фірми Texas Іnstruments у структуру НО уводиться JTAG інтерфейс. Завантаження програм і даних, обмін даними між НО і Host-ЕОМ здійснюється через високошвидкісний комунікаційний порт, що має FІFO буфера в обох напрямках. Вузли вводу/виводу підключаються через глобальну шину з пропускною здатністю до 100 Мбайт/c. Канали зв'язку з Host-ЕОМ цілком задовольняють стандарт ТІ-40, розроблений консорціумом під керівництвом Texas Іnstruments. Внутрішня структура інтерфейсу визначається завантаженою в ПЛІС конфігурацією.
Розглянуті варіанти НО забезпечують виконання ЦОС і нейроалгоритмів у реальному масштабі часу, прискорення векторних і матричних обчислень, у порівнянні з традиційними обчислювальними засобами в кілька разів і дозволяють реалізовувати нейромережу з числом синапсів до декількох мільйонів.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_50.gif" \* MERGEFORMATINET
Рис.6. Структура НО на основі TMS320C44
Ще більше підвищити продуктивність НО даного типу можна при використанні одного із самих потужних на сьогодні сигнальних процесорів - TMS320C80, TMS320C6ххх фірми Texas Іnstruments.
Прикладом реалізації НО на DSP фірми Моторолла є нейрообчислювач NEURO TURBO фірми Fujіtsu. Він реалізований на основі 4-х зв'язаних кільцем 24-розрядних DSP із плаваючою крапкою МВ86220 (основні параметри: внутрішня точність 30 розрядів, машинний цикл 150 нс., пам'ять програм-25Кслів х2 (внутрішня), 64К слів х4 (зовнішня), технологія виготовлення КМОП 1,2 мкм). Активаційна функція нейронів обмежується в діапазоні від 0 до 1, а можливі значення входів не перевищують 16 розрядів, що обумовлює достатню точність при 24-х розрядній архітектурі. Побудова нейрокомп’ютера на основі кільцевої структури об'єднання DSP дозволяє знизити апаратні витрати на реалізацію підсистеми централізованого арбітражу міжпроцесорної взаємодії.
Нейрокомп’ютер NEURO TURBO (мал.7) складається з чотирьох DSP, зв'язаних один з одним за допомогою двопортовой пам'яті. Кожний з DSP може звертатися до двох модулів такої пам'яті (ємністю 2К слів кожна) і до робочої пам'яті (РП) (ємністю 64К слів х4 Банку) у своєму адресному просторі. Внаслідок того, що доступ до двопортової пам'яті здійснюється випадковим чином одним із сусідніх DSP, то передача даних між ними відбувається в асинхронному режимі. Робоча пам'ять використовується для збереження вагових коефіцієнтів, даних і допоміжної інформації. Для успішної роботи НМ необхідне одержання згорток у всіх елементарних нейронних вузлах. Кільцева структура об'єднання DSP забезпечує конвеєрну архітектуру згортки, причому передача даних по конвеєрі здійснюється за допомогою ДПП. Після того як DSP завантажує дані з однієї ДПП, він записує результати своєї роботи в суміжну ДПП, отже, кільцева архітектура паралельної обробки забезпечує високу швидкість операції з використанням відносно простих апаратних рішень.
Для виконання функцій загального керування використовується Host-ЕОМ на основі звичайної обчислювальної системи. Обмін даними між нейроплатою і Host-ЕОМ через центральний модуль ДПП. Завантаження програм у DSP здійснюється за допомогою пам'яті команд для кожного DSP. Отже, його архітектура цілком відповідає паралельній розподіленій архітектурі типу MІMD. Пікова продуктивність системи 24 MFLOPS.
INCLUDEPICTURE "E:\\Svitlana\\Ksm-53_2\\Vavruk\\text\\L9\\НЕЙРОКОМПЬЮТЕРЫ - АРХИТЕКТУРА И РЕАЛИЗАЦИЯ-1.files\\neyrocomp_51.gif" \* MERGEFORMATINET
Рис.7. Структура нейрокомп’ютера NEURO TURBO (фірми Fujіtsu)
Для реалізації моделі НМ ієрархічного типу фірмою Fujіtsu випущена нейроплата на основі DSP МВ86232, із власною пам'яттю до 4 Мб, що дозволяє здійснювати моделювання НМ, що містить більш 1000 нейронів. Структура НМ містить у собі вхідний, проміжний і вихідний рівні (найбільше число схованих шарів - два (обмеження по пам'яті)). Для навчання нейрокомп’ютера використовуються оригінальні фірмові алгоритми: алгоритм віртуального імпедансу, алгоритм скоректованого навчання й алгоритм розширеного навчання.
Кожна з розглянутих типових структур реалізації НМ може бути промодельована на основі розглянутих вище варіантів побудови мультипроцесорних НО. Так, для НО на основі TMS320C4x при реалізації якої-небудь з розглянутих архітектур (кільце, ієрархічне дерево, гіперкуб і т.п.) досить тільки змінити призначення комунікаційних портів, що забезпечує гнучкість і масштабування при дослідженні і розробках нейромережевих систем різної архітектури.