Машина на глиняних ногах
9 / 18

Розділ 8. Майбутнє, яке не настало

Парадокс прогресу

Уся попередня частина книги — це історія однієї технології: CMOS (Complementary Metal-Oxide-Semiconductor), тобто тих самих кремнієвих транзисторів, які описав Шоклі у 1948-му. Усі сучасні процесори — Intel, AMD, ARM, Apple, NVIDIA — це CMOS. Усе, що ми використовуємо, — CMOS.

І ось парадокс. CMOS — поганий. Він обмежений у частоті (ми бачили — стіна на 5 ГГц). Він жере енергію (привид фон Ноймана). Він виробляється у дуже малій кількості заводів у світі (TSMC, Samsung, Intel — і все). Він фундаментально несумісний з мозкоподібними обчисленнями (бо мозок — паралельний, аналоговий, асинхронний, а CMOS — послідовний, цифровий, тактовий).

За останні шістдесят років інженери вигадали десяток альтернатив CMOS. Кожна обіцяла вирішити одну чи кілька з його проблем. Кожна мала своїх адептів і пророків. Кожна мала статті в Scientific American і виступи на TED.

І жодна не замінила CMOS.

Чому? Це найцікавіше питання у книзі. І воно має одну спільну відповідь: CMOS виграє не тому, що він кращий, а тому що його легше програмувати. Кожна альтернатива — у 5-50 разів складніше написати під неї код. А програмістів, які можуть на ній писати, у 100-1000 разів менше. І ця економічна сила долає будь-які технічні переваги.

Подивимось на основні кандидати.

Аналогові обчислення: повернення з мертвих

Перші комп’ютери були аналогові, не цифрові. Це були механічні і електричні машини, які моделювали фізичні системи безпосередньо — за допомогою шестерень, рідин, струмів. Артилерійські таблиці Першої світової. Машини Vannevar Bush з MIT у 1930-х. Аналоговий комп’ютер у пілоті ракети V-2. Аналогові комп’ютери NASA, які обчислювали траєкторії “Аполлонів”.

Аналоговий комп’ютер не використовує дискретних 0 і 1. Він використовує безперервні величини — напругу, струм, опір. Хочеш помножити два числа? Подаєш їх як напруги на вхід спеціальної схеми, отримуєш на виході їхній добуток як іншу напругу. За один такт. Без процесорних інструкцій.

Аналог був швидким і енергоефективним. Але він мав фатальний недолік: точність. Аналогові схеми мають шум. Якщо помилка кожної операції — 1%, після 10 операцій точність — 90%. Після 100 — близько 35%. Невелика програма стає математичним сміттям.

Тому в 1960-х світ перейшов на цифру. Цифрові обчислення можуть бути точними до останнього біта. І ця точність виявилась важливішою за швидкість.

А зараз — несподіваний поворот.

Штучний інтелект виявився задачею, яка не потребує точності. Нейромережа — це по суті множення матриць, і вона толерантна до шуму. Точність 8 біт замість 32 — нормально. 4 біта — все ще працює. Аналогові обчислення з помилкою 1% на операцію — теж працюють.

Це відчинило двері для повернення аналогу.

Mythic AI (стартап з Остіна, Техас) робить аналогові AI-чіпи. Замість двійкового множення — використовують мемристори (memory + resistor) — електронні елементи, опір яких можна програмно встановлювати. Якщо подати на мемристор напругу — струм, який тече через нього, дорівнює напрузі, помноженій на провідність (закон Ома: I = V × G). А якщо запрограмувати провідність як вагу нейромережі — то отримаємо множення вхідного значення на вагу безпосередньо у фізиці.

Енергоефективність — у 100-1000 разів вища, ніж у GPU. Mythic анонсував чіпи для edge AI — розпізнавання облич у камерах, голосове розпізнавання у смарт-колонках. У 2023 році в них були серйозні фінансові проблеми, але технологія жива.

IBM Research теж активно працює над аналоговими AI-чіпами. У 2023 році вони показали прототип з 64 мільйонами синаптичних пристроїв — і він обчислював інференс для невеликих нейромереж із чудовою енергоефективністю.

Lightmatter робить оптичні аналогові обчислення (про це нижче).

Чому аналог досі не пробив? Бо програмувати під нього важко. Не існує мови програмування “для аналогу”. Усі алгоритми треба переписувати під конкретну архітектуру чіпа. Жоден джуніор-програміст це не зробить. А всі інженери, які можуть, — у штаті п’яти стартапів.

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

Нейроморфні чіпи: коли копіюємо мозок

Карвер Мід — професор Каліфорнійського технологічного, людина, яка серед іншого ввела термін “VLSI” (very-large-scale integration) для сучасних чіпів. У 1980-х Мід запитав: якщо мозок настільки потужний і настільки енергоефективний — а ми не можемо це повторити в кремнії — то, можливо, ми просто неправильно проектуємо?

Мід запропонував нейроморфні чіпи — такі, які прямо копіюють архітектуру мозку.

Що особливого в мозку?

  1. Він масово паралельний. ~86 мільярдів нейронів, кожен зв’язаний з тисячами інших. Усе працює одночасно.
  2. Він асинхронний. Немає центрального годинника. Кожен нейрон спрацьовує сам, коли його вхідний сигнал перевищує поріг.
  3. Він спайковий (event-driven). Інформація передається не безперервними напругами, а імпульсами (спайками). Між спайками — мовчання, нуль енергії.
  4. Пам’ять і обчислення — разом. Синапси одночасно зберігають вагу і виконують множення. Немає шини, немає привида фон Ноймана.
  5. Він пластичний. Вчиться у процесі роботи, без окремого “етапу тренування”.

CMOS не може робити нічого з цього напряму. Доводиться емулювати — і це жахливо неефективно. Один біологічний нейрон у спайковій моделі — це може коштувати десятки тисяч CMOS-транзисторів і мікроватів енергії. Мозок робить ту саму роботу за фемтоватти.

Отже, виникли проекти, які роблять чіпи з апаратними нейронами:

  • IBM TrueNorth (2014). Чіп з 1 мільйоном “нейронів” і 256 мільйонами “синапсів”. Споживав 70 мВт. У сотні разів економніше за CMOS на нейромережних задачах.
  • Intel Loihi (2017, потім Loihi 2 у 2021). Дослідницький чіп Intel. Обчислює спайкові нейромережі апаратно.
  • SpiNNaker (Манчестерський університет, працює з 2010-х). Машина з мільйоном ARM-ядер, оптимізованих під моделювання мозку. Не нейроморфна в суворому сенсі, але близько.
  • BrainChip Akida — комерційний нейроморфний прискорювач для edge-задач.

Чому нейроморфні чіпи не повстали?

Програмування. Усі сучасні AI-моделі (GPT, ResNet, Stable Diffusion) — це класичні нейромережі з безперервними значеннями, не спайки. Щоб запустити їх на нейроморфному чіпі, треба повністю перевчити модель у спайковій формі. Це окремий тип машинного навчання. Він повільний, складний, дає гірші результати на класичних задачах.

Тобто щоб перейти на нейроморфне залізо, треба відкинути все, що індустрія напрацювала за 15 років. Жоден бізнес такого не зробить.

Нейроморфні чіпи живуть у спеціальних нішах: завжди-увімкнені пристрої з критичною економією енергії (моніторинг здоров’я, IoT-датчики), і в наукових експериментах. Поки що не більше.

Оптичні обчислення: інформація світла

Якщо проблема CMOS — це швидкість і енергія, а основою CMOS є електрони, то логічна альтернатива — фотони.

Чому світло краще? - Швидше. Фотон рухається швидше за електрон у кремнії (хоча у вакуумі швидкість світла обмежена, у хвилеводах вона все одно вища за швидкість сигналу в проводі). - Без опору. Фотон не зустрічає електричного опору. Менше тепла. - Паралелізм. Світло різних довжин хвиль може йти по одному волокну одночасно (це використовується в оптичному інтернеті — DWDM). - Аналогові обчислення безпосередньо. Множення двох сигналів у оптиці — це просто інтерференція. Безпосередньо в фізиці.

Lightmatter (стартап з MIT, 2017) робить чіпи, де нейромережа реалізована як інтерферометр — пристрій, який пропускає світло через систему дзеркал і модуляторів. Множення матриць виконується за один прохід світла. Швидко, енергоефективно.

Lightelligence робить подібне.

PsiQuantum — будує оптичний квантовий комп’ютер.

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

Перспективно. Але до масового впровадження ще роки.

Квантові комп’ютери: великий хайп, обмежена реальність

З усіх альтернатив CMOS, квантові обчислення мають найбільше уваги ЗМІ. Заголовки 2010-х: “Квантові комп’ютери змінять усе”. 2020-х: “Google досяг квантової переваги” (quantum supremacy). 2024-х: “Atom Computing і IBM перетнули позначку 1000 кубітів”.

Тут варто чесно: квантові комп’ютери цікаві, але не для більшості задач.

Що таке квантовий комп’ютер? Це машина, яка використовує квантові біти (кубіти). На відміну від звичайного біта (0 або 1), кубіт може бути в суперпозиції — частково 0 і частково 1 одночасно. Купа кубітів може бути в заплутаному стані — їхні значення корелюють у дивний, нелокальний спосіб.

Якщо все правильно зробити, квантовий комп’ютер може за один прохід “перевірити” експоненційну кількість можливих варіантів. Це звучить як магія. Це і є магія, з погляду звичайного програмування.

Але дві деталі.

Перша: квантові комп’ютери вирішують дуже мало конкретних задач ефективніше за класичні. Дві найвідоміші: - Алгоритм Шора (1994): розкладає велике число на множники. На ньому базується RSA-шифрування. Якщо матимемо великий квантовий комп’ютер, RSA зламається. Усі онлайн-банки, VPN-сервіси, безпечні комунікації — зламаються в один день. Тому зараз великі агенції (NSA, NIST) переходять на постквантову криптографію — шифри, які працюють і проти квантових атак. - Алгоритм Гровера (1996): пошук у несортованому масиві за √N кроків замість N. Корисно для деяких типів пошуку. - І ще: симуляція квантових систем — корисна для хімії, матеріалознавства, фармацевтики. Можливо, найреалістичніше комерційне застосування.

Усе. Більшість задач (бази даних, AI, обробка зображень, веб-сервери) не пришвидшуються квантовими комп’ютерами.

Друга: побудувати великий і стабільний квантовий комп’ютер — надзвичайно важко. Кубіти крихкі, шумні, “розплутуються” від найменшої взаємодії з оточенням. Тому їх тримають у вакуумі при майже абсолютному нулі (~0.01 К). Кожен кубіт оточений сотнями допоміжних “корекційних” кубітів, щоб виправляти його помилки.

У 2024 році лідери квантових обчислень мають порядку 1000-5000 фізичних кубітів (IBM, Google, Atom Computing). Але логічних, корисних кубітів — порядку десятків. Для зламу RSA-2048 потрібно тисячі логічних кубітів, тобто мільйони фізичних. Це ще десятки років.

Висновок: квантові комп’ютери прийдуть і будуть важливими у певних нішах. Але не замінять класичні комп’ютери для більшості задач. Це як ядерний реактор — потужно, але не у твоєму ноутбуці.

Карбонові нанотрубки і інші екзотики

Окрім вищезазначених, є ще кілька кандидатів.

Карбонові нанотрубки (carbon nanotube transistors, CNT). Замість кремнію — крихітні циліндричні структури з атомів вуглецю. Відмінні електричні властивості, мала маса, висока швидкість. Стенфордська група під керівництвом Subhasish Mitra у 2019 році побудувала повністю функціональний 16-бітний процесор на CNT — RV16X-NANO, на основі архітектури RISC-V. Перший в історії процесор не на кремнії.

Проблеми: масове виробництво. Складно зробити CNT-чіпи однорідні і дешеві.

Спінтроніка — використання не заряду електрона, а його спіну (квантова властивість). Магнітна оперативна пам’ять (MRAM) уже комерційна. Спіновий процесор — у дослідженнях.

ДНК-обчислення — використання молекул ДНК як обчислювальних елементів. Експериментували з 1990-х. На практиці — повільно, дорого, незручно. Цікаво для біоінформатики, не для загального обчислення.

Молекулярні і квазікристалічні обчислення — теоретичні напрямки, поки що.

Чому CMOS не падає

Підсумуємо. Чому жодна з цих альтернатив не змогла замінити CMOS?

  1. Програмованість. Ми вміємо писати код під CMOS. Десятки мов програмування, мільйони бібліотек, мільйони програмістів. Усе це — на CMOS. Перейти на іншу архітектуру — означає відкинути 50-річну інвестицію в людський капітал.
  2. Виробничий масштаб. TSMC робить 14 мільйонів CMOS-вафель на рік. Жодна альтернатива не наближається до цього обсягу. Через економію масштабу CMOS у 1000 разів дешевший за будь-яку альтернативу.
  3. Точність. CMOS — це двійкові цифри, без шуму, точно. Для більшості задач (банки, наукові обчислення, бази даних) це необхідне.
  4. Зрілість. Шістдесят років налагодження. Усі особливості, помилки, способи їх виправити — задокументовані.
  5. Універсальність. CMOS-процесор може робити все: від веб-серверу до AI до симуляції погоди. Альтернативи спеціалізовані.

Альтернативи виграють тільки там, де CMOS принципово не може змагатися. Едж-AI з мікроваттним споживанням — нейроморфні. Завдання типу зламу RSA — квантові. Множення матриць у датацентрах — оптичні і аналогові.

Найреалістичніший сценарій майбутнього — гетерогенні системи: один великий CMOS-чіп як “диригент”, оточений спеціалізованими прискорювачами різного типу. Ми вже у цьому світі: твій телефон має CPU (CMOS), GPU (CMOS), NPU (спеціалізований), DSP (спеціалізований), ISP для камери (спеціалізований). Усе на одному системному чіпі (SoC). Усе працює разом.

Майбутнє не у “новому процесорі замість CMOS”. Майбутнє у зоопарку спеціалізованих процесорів, де кожен виконує свій тип задач.

Що з цього винести

  1. CMOS — старий, обмежений, але майже непереможний через економіку і програмованість.
  2. Аналогові обчислення повертаються через AI. Помилка в 1% не страшна для нейромережі.
  3. Нейроморфні чіпи мали б наслідувати мозок. Вони цікаві, але вимагають іншого підходу до програмування, тому в нішах.
  4. Оптичні обчислення обіцяють швидкість і енергоефективність. Поки в стартапах.
  5. Квантові комп’ютери — реальність, але для дуже вузького класу задач. Не замінять класичні комп’ютери.
  6. Карбонові нанотрубки, спінтроніка, ДНК — захоплюючі експерименти, поки не комерційні.
  7. Майбутнє — гетерогенне: CMOS + спеціалізовані прискорювачі, кожен у своєму домені.

Цим розділом закінчується Частина II. Ми пройшли архітектурний шар: від x86 і ARM до пам’яті і альтернатив. Тепер піднімаємось на наступний рівень.

У Частині III піднімемось до програмного забезпечення: операційні системи, мови програмування, флеймові війни. Подивимось, як один молодий інженер у Bell Labs улітку 1969 року створив Unix, бо його дружина поїхала у відпустку. Як сорок років по тому весь світ досі живе у наслідках того одного літа. І як, можливо, нам нарешті час переосмислити фундамент, на якому ми стоїмо.

Це починається з історії однієї відпустки. Дивись наступний розділ.