Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

What Jensen giveth, Jürgen taketh away

Новая модель вычислительной архитектуры, наконец, начала как-то обсуждаться в англоязычной литературе под тегом "закон Хуанга" (Дженсен Хуанг -- это CEO NVIDIA, который во всех своих презентациях говорит, что развитие GPU продолжает закон Мура, а то и превосходит его). Вот, например, пост "The Advent of Huang's Law" http://rbharath.github.io/the-advent-of-huangs-law/, который попал с подробными комментариями даже первой новостью в рассылку OpenAI -- https://mailchi.mp/jack-clark/import-ai-89-chinese-facial-recognition-startup-raises-600-million-why-gpus-could-alter-ai-progress-and-improving-language-modeling-via-context. Пост этот от 7 апреля, я об этом же подробненько писал ещё 1 апреля 2018 в NVIDIA как поставщик вычислительной инфраструктуры -- https://ailev.livejournal.com/1416697.html.

I think that there’s something to this new “Huang’s law.” It’s not just in deep learning. Improvements in custom architecture have started to demonstrate real and practical improvements in a number of fields. ... Nvidia’s grand achievement however is in making the case that these improvement in architectures are not merely isolated victories for specific applications but perhaps broadly applicable to all of computer science. -- Это точь в точь мысль из моего текста, и жаль, что я не пишу по английски, а то цитировали бы дальше не Bharath Ramsundar, а меня. ;-)

Что будет дальше? Дальше изменения в архитектуре должны привести к изменениям в языках программирования: они должны будут уметь компилироваться в параллельную архитектуру не только для суперкомпьютеров из CPU или даже мультиядерных CPU (например, компиляторы лаборатории Бориса Штейнберга умеют распознавать параллельность без ручного аннотирования -- http://www.ops.rsu.ru/about_OPS.shtml), но и для GPU -- ибо это и есть сейчас general processing unit для всех видов вычислений.

Ещё нужно учесть, что должны появиться не просто специализированные компиляторы для старых языков, но и языки, которые позволяют более-менее эффективно сажать вычисления на различную GPU аппаратуру, абстрагировать GPU для пользователя. Тут мне нравится Julia, которая делает свою инфраструктуру посадки вычислений на GPU таким образом, что не нужно переписывать алгоритмы для GPU каждый раз, когда хочется указать, что вычисление должно производиться не на CPU, а в GPU -- https://julialang.org/blog/2017/03/cudanative. Тут вариант CUDA-интерфейса с GPU на Julia. CUDA сегодня для новой вычислительной архитектуры стандарт де-факто, все остальные "нейтральные стандарты" почему-то оказываются неудобными для работы, и можно обсуждать -- это их плохая архитектура, или просто нежелание каких-то людей вливать деньги в создание всяческих профайлеров, отладчиков, учебных курсов и прочих нужных вещей для поддержки программирования на этих интерфейсах. NVIDIA же делает программирование для CUDA удобным архитектурно, инструментально, и организационно, вот и результат. Системный подход, когда внимания системному окружению и использующей системе уделяется едва ли не больше, чем самой целевой системе.

Выигрывают же от новой парадигмы универсального программирования все: вычисления, стремительно дешевевшие согласно закону Мура, продолжают дешеветь по закону Мура же (в версии Хуанга, который "продолжает традицию закона Мура"), или по закону Хуанга (как это начали обсуждать сейчас, учитывая предложенную NVIDIA новую архитектуру универсальных вычислений).

Ну, и ещё нужно будет обновить поговорку "What Andy giveth, Bill taketh away" на что-нибудь типа "What Jensen [Huang] giveth, Jürgen [Schmidhuber] taketh away". Так что не радуйтесь, даже с законом Хуанга вычислительной мощности всегда не будет хватать.

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

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 7 comments