Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Categories:

Только одна из компьютерных физик: заказан цифровой компьютер с 0.01 секстиллиона операций в секунду

NVIDIA получила заказ на изготовление цифрового компьютера Leonardo вычислительной мощностью 0.2экзафлопс, если замерять в FP64, стоить он будет примерно €0.24 миллиарда, строиться начнёт в следующем году летом, а в 2022 году вступит в строй -- нынешний экзафлопс FP64 идёт по цене миллиарда долларов, https://www.hpcwire.com/2020/10/15/nvidia-and-eurohpc-team-for-four-supercomputers-including-massive-leonardo-system/.

Но если брать AI вычисления, то речь в Leonardo уже идёт о мощности в 10 экзафлопс (10 квинтиллионов, то есть 10**18 операций половинной точности в секунду) -- https://venturebeat.com/2020/10/15/nvidia-will-supply-hardware-for-leonardo-a-10-exaflop-supercomputer/. Мы уже привыкли к классическим цифровым компьютерам, и вроде как шла борьба за экзафлопс, но она плавно перешла в борьбу за зетафлопс (это уже 0.01зетта -- начинаем учить новый префикс, секстиллионы). Ещё можно поспорить, о каких флопсах говорится, https://medium.com/@moocaholic/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407 (самым популярным становится TF32, который подразумевает 19 бит в умножении, но 32 бита в сложении -- https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/, у Intel это FP19. Скорее всего, речь идёт именно о 10экзафлопс с именно такими плавающими -- 32 бита в памяти, в сложении, но 19 бит в умножении). Если вы ухитряетесь делать умножения на калькуляторе за одну секунду, то чтобы выполнить 10экзафлоп операций с этой скоростью вам нужно будет потратить 316887650000 лет (т.е. почти 17 миллиардов лет, Земле всего 4.5 миллиарда лет, нужно было бы работать вчетвером, чтобы управиться за время от зарождения Земли до настоящего времени вычислить с дикой скоростью одного умножения в секунду столько умножений, сколько их будет делать Leonardo всего за секунду. Там ведь примерно 14тыс. NVIDIA A100GPU, да ещё на водяном охлаждении! Невероятная мощьность).

Вот я писал про квинтиллионы операций в секунду (и желание иметь нейросетки с тера/триллионом параметров) в сентябре -- https://ailev.livejournal.com/1536283.html, вот про ускорение и перестройку в айтишном мире по состоянию на осень 2020 -- https://ailev.livejournal.com/1540648.html, тут лишь добавлю несколько штрихов.

Computer science это естественная наука, ответ на вопрос о том, что может быть вычислено, а что не может быть вычислено даётся теориями computer science, а работающие теории выбираются экспериментами, а не математически. Ужас в том, что в евклидовой геометрии сумма углов треугольника 180 градусов, но если реально замерить сумму углов треугольника вблизи Земли, то это будет (искривление пространства-времени большой массой!) 180,0000002 градуса, и если эту поправочку "из физики" не учитывать, то нельзя построить GPS. То же самое относится к любым другим объектам: математическая точка и физическая точка (особенности с учётом особенностей квантовой физики) это очень разные объекты. И математическое понятие вычисления и физическое вычисление -- это разные объекты. Так, математическое вычисление прежде всего даёт нам легко имитируемые аналоговыми цепями классического цифрового компьютера операции логики (и, или, не) с нулями и единицами. А теперь поменяем физику компьютера с цифрового на квантовый, где ровно вот эти операции делаются с огромным трудом, но зато какое-нибудь разложение на множители -- раз плюнуть. Что теперь с computer science? Можем мы быть уверенными в результатах вычислений квантовых компьютеров? А если это оптический компьютер (например, https://venturebeat.com/2020/06/03/lighton-researchers-explain-how-they-trained-an-ai-model-on-an-optical-co-processor/) -- то что именно он считает, и насколько мы должны быть уверенными, что он считает именно это? Кто это должен сказать: математики или физики? Кто должен сопоставить "математические треугольники" и "физические треугольники" для тамошних вычислений?

Чтобы было понятней: классический компьютер имеет алгоритмы, которые при добавлении одного разряда к разлагаемому на множители числу утраивают время вычисления. Время вычисления растёт в геометрической прогрессии. Рекорд прошлого года -- 240 десятичных разрядов, и речь идёт о примерно четырёх тысячах лет работы одного компьютерного ядра (ну, или четырёх годах работы тысячи компьютерных ядер), https://listserv.nodak.edu/cgi-bin/wa.exe?A2=NMBRTHRY;fd743373.1912. Квантовый алгоритм Шора 250-значное число раскладывает на множители лишь за несколько тысяч операций, то есть практически мгновенно. Но этот алгоритм раскидывает вычисления по примерно 10**500 вселенных в мультиверсе (интерпретация Эверетта для квантовой механики -- самая понятная в части объяснений происходящего), собирая результаты этих вычислений через механизм интерференции. Во всей вселенной существует всего около 10**80 атомов, что существенно меньше по сравнению с 10**500. Для квантовых компьютеров таким образом открыты такие задачи, которые классические цифровые компьютеры вообще не могут решить. Это физика, математика тут отдыхает.

А есть ли квантовые алгоритмы обучения нейронных сетей? Да, есть. И вы попадаете в другой мир, где трудно вычислить 2*2, но легко вычислить разложение на множители 250-значного числа. Можно начинать computer science сначала, и мир ждёт квантового Дональда Кнута (https://en.wikipedia.org/wiki/Donald_Knuth): квантовые алгоритмики в новом мире будут самыми главными (как и в классическом IT "просто алгоритмики"), чтобы потом точно так же отойти в тень: алгоритмики (ну, или алгоритмисты, уж кому как нравится) всё-таки ближе к кодерам, а вот программисты, приходящие им на смену больше озабочены вопросами "зачем" и "почему", нежели "как", они больше инженеры, а не computer scientists. Но без знания алгоритмики, то есть что можно, а чего нельзя просить у компьютера -- классического, квантового, нейроморфного, оптического, мемристорного -- software engineering времени мультипарадигмальной компьютерной физики не взлетит.

А поскольку компьютеры по факту будут (как и люди!) во всех проектах, то компьютерный кругозор должен быть у всех -- software engineering как специализация systems engineering должна присутствовать в образовании. И базироваться должна на естественной науке computer science, а не на чистой математике.

Квантовая и оптическая революции в вычислениях уже начались, через пяток лет вычислительный пейзаж будет абсолютно другим: я считаю, что в этих областях экспоненты работают, так что всё будет дешёвым -- и быстро. Проблема будет только в том, чтобы люди изобрели killer application (за этим не заржавеет) и дальше появилось достаточное число людей, чтобы с этим работать.

Классические цифровые компьютеры скоро достигнут мощности зеттафлопса (ещё парочка поколений архитектуры GPU и архитектуры датацентров-компьютеров), но это будут классические тьюринговские алгоритмы, а квантовые компьютеры (которые через пару лет тоже уже будут вполне "классическими", равно как и оптические компьютеры) будут блистать в других алгоритмах, имеющих абсолютно другие оценки скорости вычислений, ибо элементарные операции в них будут абсолютно другими, несводимыми к логическим конъюнкциям, дизъюнкциям, отрицаниям.

No free lunch theorem можно переформулировать с математической постановки задачи (нет универсально хорошего алгоритма для оптимизации/обучения во всех классах задач) на физическую (нет универсально хорошего физического вычислителя для всех классов задач).

Computer science нужно переписывать, она перестаёт быть универсальной дисциплиной: computers оказываются более чем разными физически, и математики для них тоже оказываются разными! И только эксперимент даёт ответ: можем ли мы сопоставить с достаточной степенью надёжности эти разные математики этим разным компьютерным физикам. Это идёт физическая революция в computer science, революция физического разнообразия вычислительной мощности: для разных алгоритмов будем использовать разные физики в компьютерах, что трудно для одной физики -- раз плюнуть для другой, и наоборот.

И это, заметим, никак не отменяет тезис Alan Key: The Computer Revolution Hasn't Happened Yet -- https://ailev.livejournal.com/469995.html (мой текст ещё 2007 года с пересказом идей Алана от 2004 года) и более жёсткие формулировки в тексте 2017 года (https://ailev.livejournal.com/1363194.html): компьютер удивительный музыкальный инструмент, на котором люди не играют удивительную музыку, а пищат и шумят (грубо говоря, используют компьютер как микроскоп, которым заколачивают гвозди -- и ситуация с этим всё печальней и печальней). Даже плохие сегодняшние компьютеры не используются по назначению, на них никто не учится быть умнее, на них учатся быть глупее. И тут дело не в компьютерах, а в людях: не пианино виновато, что на нём играют "Чижика" одним пальцем вместо Шопена. Компьютерная революция будет не в тот момент, когда компьютер сумеет автоматизировать что-то ещё (разгрузит человека), а в тот момент, когда наоборот, компьютер сможет быть использован для того, чтобы человек смог выполнять более сложные задачки. Ну, типа компьютер из лестницы, ведущей мозг вниз, станет лестницей, ведущей мозг вверх. Конечно, для этого нужно будет дополнительно учиться, как учатся играть на скрипке (и тут я не могу не напомнить "Никто не хочет учиться играть на XYZ" -- http://ailev.livejournal.com/1158826.html, рынок такое не оплачивает). Но для этого нужно поменять всю систему образования, а для этого нужно осознать, что происходит развал цивилизации.

Вот я осознал, вот я думаю над курсом вычислительного мышления. Этот курс должен выжить пришествие квантовых и оптических вычислителей/computers, и он должен рассказывать о том, как эти вычислители делают человека и группы людей умнее, усиливают интеллект, а не развлекают и автоматизируют. Да, это очень непопулярная постановка вопроса. Если бы я делал курс по гарантированному выигрышу в покер на раздевание, да ещё предлагал "никакой теории, только практика", то за мной пошли бы толпы. Тут же толп пока не намечается, на фронтире толп обычно не бывает.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10219608604139729
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 1 comment