Проблема умного железа
Используя метафору «души и тела» в приложении к AI, можно сказать, что в CV – это проблема «души», она решается давно и успешно, но проблема «тела» остается далека от решения, несмотря на кажущееся благополучие, обеспечиваемое графическими процессорами GPU и собранными из них кластерами с рекордными показателями производительности, измеренной в петафлопах, то есть в единицах, не имеющих непосредственного отношения к нагрузке, создаваемой AI-приложениями. История специализированных аппаратных технологий для CV и вообще задач машинного обучения только начинается.
Приходится признать, что для такого класса задач используемые ныне GPU и намного реже специализированные микросхемы (ASCI) и матричные массивы (FPGA) служат тем, что по-английски называют stopgap measures, то есть средствами, обеспечивающими временное решение, не более того. О степени несовершенства можно судить по тому, что мозг потребляет порядка 40 ватт, а если бы удалось создать компьютер, моделирующий равное число нейронов современными технологиями, его мощность оценивалась бы тысячами мегаватт, но есть на 7–9 порядков больше. Поэтому нынешнее положение можно сравнить с тем, что было в первые годы существования компьютеров, когда в ход шли любые доступные радиодетали – лампы, транзисторы, конденсаторы, сопротивления, магнитные сердечники. Это происходило до семидесятых, до тех пор пока не появились интегральные микросхемы, а позже и микропроцессоры.
Проблема железа для CV заключается в том, что до сих пор нет процессоров, полностью соответствующих задачам моделирования. нейронных сетей. Фон-неймановские CPU были задуманы для расчетов, то есть для последовательного выполнения одной программы, хотя за десятилетия их научились искусственными приемами адаптировать к распараллеливанию, или, как сейчас чаще говорят, к работе в многопоточном режиме, более соответствующим требованиям машинного обучения. Однако CPU, имея относительно небольшое число (десятки) производительных ядер, остаются способными обрабатывать ограниченное количество мощных потоков. Ограниченность обычных CPU для задач CV и других задач, связанных с машинным обучением, была осознана давно, чтобы с ней справиться в ход идут не только графические, карты (GPU), аудиокарты, сигнальные процессоры, программируемые матрицы FPGA и многое другое. Успешнее других оказалось внедрение GPU, задуманные для задач трехмерного рендеринга они отличаются большим числом ядер, но эти ядра существенно меньше и проще, чем CPU. Так уж случилось, что GPU, рожденные для компьютерных игр, смогли обеспечить прорыв в AI. Сегодня огромные кластеры, собранные из игровых в прошлом процессоров, обеспечивают всю индустрию AI.
Но GPU являются паллиативом, если посмотреть на проблему шире, то надо