# Понедельник 55 твитов
Привет читателям @backendsecret! На этой неделе с вами @fads93_zombie
10:37Немного о себе: учился на кафедре микропроцессорных технологий МФТИ, 4 года назад попал на стажировку в московский офис Интела
10:50Работал в проекте Бабаяна, моя специализация - трансляторы, но не языковые :)
10:54Хочу начать с того, что в Москве очень сильная школа процессорных технологий, с центрами в МЦСТ, ИТМиВТ, Интеле и на кафедрах МФТИ
11:02Нельзя не сказать про Эльбрусы - часто рассматривали на лекциях на кафедре, мое впечатление - для своего времени это была передовая система
11:15Буду только рад, если МЦСТ найдёт средства на дальнейшую разработку. Haters gonna hate!
11:15Ах да, я веду паблик вконтакте с новостями процессорной индустрии без инсайдов
vk.com/pipelinestall
Давайте начнём интерактив. Помогите следопыту Даше определить, с какой аудиторией она имеет дело
11:32Шёл 2017 год...
11:35Обход графа в глубину...
11:36Я просто не мог удержаться
11:44В игрули я шпилю на...
(выпуск же про процессоры)
Его было не остановить @backendsecret pic.twitter.com/2qd3ZnS4at11:47
Прошу вас подумать над вопросами, пока я ненадолго отключусь :)
11:58Русский след в интеле, как с аэромеха попасть на микропроцессоры, зеленее ли трава в долине, и все, что может вас интересовать
12:00@backendsecret @alexanius А я думал codesign это что-то дуальное к design.19:40
@backendsecret @fads93_zombie Это все интересно, но оффтоп.
Какие перспективы у вышедшего наконец 3dxpoint'а?
Когда… twitter.com/i/web/status/8…
XPoint: как мне видится, технология перспективна для датацентров как быстрый кэш/расширенная RAM… twitter.com/i/web/status/8…
20:37@backendsecret @fads93_zombie Почему интеловский пенёк лучше амдшного рузена/FX'a в игрульках?
1/ Про производительность в играх можно судить по бенчмаркам, например arstechnica.com/gadgets/2017/0… twitter.com/ioooooi1/statu…
20:51@backendsecret @fads93_zombie Почему интеловский пенёк лучше амдшного рузена/FX'a в игрульках?
2/Вопрос почему: несмотря на то, что IPC микроарх Zen на 40% больше предыдущего поколения, это все равно меньше, че… twitter.com/i/web/status/8…
20:54@backendsecret @fads93_zombie Почему интеловский пенёк лучше амдшного рузена/FX'a в игрульках?
3/Простой пример: AMD добавили в Zen кэш микроопераций, который был в Core начиная с Sandy Bridge (2011) twitter.com/ioooooi1/statu…
20:56@backendsecret На борде сидишь?
Как твое образование относительно иностранных коллег выглядит, достойно?
Кто нибудь там про физтех вообще?
Про образование: в моей команде работают люди в основном с американским образованием, много PhD, есть один человек… twitter.com/i/web/status/8…
21:01Я не могу быть полностью объективен, но в практических аспектах образование на уровне. МФТИ+базовая кафедра в Интеле - non est penis canina
21:05@backendsecret На борде сидишь?
Как твое образование относительно иностранных коллег выглядит, достойно?
Кто нибудь там про физтех вообще?
Про физтех речь не заходила, но мой менеджер точно про него знает. Несколько человек знают про МЦСТ, те кто вместе… twitter.com/i/web/status/8…
21:10@backendsecret Правда что много бомжей, потому что им доплачивают?
Правда,что невозможно высокие цены на жилье?
Пра… twitter.com/i/web/status/8…
В самой долине почти нет таких людей, но их много в городах (Сан-Хосе, СФ). Жилье дорогое, аренда 1bd апартов в Сан… twitter.com/i/web/status/8…
21:14@backendsecret Правда что много бомжей, потому что им доплачивают?
Правда,что невозможно высокие цены на жилье?
Пра… twitter.com/i/web/status/8…
Каждый день езжу на работу мимо пожарной части :) Врачей вроде тоже хватает, если судить по списку тех, кто работае… twitter.com/i/web/status/8…
21:16Сейчас производители процессоров хвастаются использованием нейронных сетей в предсказателе переходов (AMD, Samsung)
21:18А знали ли вы, что в процессорах Интел начиная с Core 2 есть LSD-режим?
21:20К диэтиламиду лизергиновой кислоты он не имеет отношения.Loop Stream Detector позволяет отключить часть фронтенда и… twitter.com/i/web/status/8…
21:24@backendsecret сколько в мире реальных работодателей для разработчика микропроцессоров?
Думаю, не более 20. Intel, Nvidia, ARM, Qualcomm, Apple, Samsung, Google, Imagination, пара стартапов… И, конечно,… twitter.com/i/web/status/8…
21:34@backendsecret бум ML/Data Science как-то отразился на МП?
Интел выпускает оптимизированный Distribution for Python для ML/DS, оптимизирует фреймворки Caffe и TensorFlow. (Чт… twitter.com/i/web/status/8…
21:37@backendsecret А что это даёт?
Улучшает энергоэффективность (гасит BPU) и повышает пропускную способность фронтенда.
@krems5 twitter.com/dcromster/stat…
@backendsecret Что ты думаешь насчет x86? Не пришло ли наконец время для итаниума?
Какие шансы у эльбрусов?
Время итаниума наконец закончилось :) Интел прекращает выпуск Итаниумов с релизом Kittson
itworld.com/article/319607… twitter.com/krems5/status/…
@backendsecret Что ты думаешь насчет x86? Не пришло ли наконец время для итаниума?
Какие шансы у эльбрусов?
Моя точка зрения: широкая команда со статическим планированием (Итаниум, Эльбрус) уже не обгонит out-of-order super… twitter.com/i/web/status/8…
21:48@backendsecret Почему интел не делает процессоры с более слабыми моделями памяти, не планирует в embedded?
Про более слабые модели памяти - имеется в виду отказаться от TSO? Тогда это будет не x86 :) twitter.com/krems5/status/…
21:49@backendsecret Почему к power'ам и армам такие хилые доки, что бедный Peter Sewell вынужден экспериментально выясня… twitter.com/i/web/status/8…
У ARM совсем не хилые доки. Один из авторов ARM v8 публикует у себя в блоге работу с Machine Readable Spec… twitter.com/i/web/status/8…
21:51@backendsecret А можешь пояснить где тебе видится слабое место VLIWов? Только статическое планирование?
Статическое планирование и проблемы с масштабируемостью (сложности с утилизацией всех исполнительных устройств в ка… twitter.com/i/web/status/8…
22:05@backendsecret > Итаниум сдох22:06
> Эльбрус не нужен
Казалось бы, можно расслабиться. Но тут внезапно
> NVIDIA Denver
> Qualcomm QDSP6
@backendsecret А если отойти от всех проблем с окружением, как думаешь, Itanium мог бы выстрелить?
Наверное, мог бы, будь у него обратная совместимость с x86 без потери производительности и повыше тактовая частота. twitter.com/dcromster/stat…
22:11@backendsecret Есть ли тенденция включать больше векторных модулей в процессор?
В связи с популярностью sse и встро… twitter.com/i/web/status/8…
Как по мне - после AVX512 куда уж больше :) но потребность в SIMD вычислениях не падает, поэтому тренд продолжится twitter.com/krems5/status/…
22:13@backendsecret А если отойти от всех проблем с окружением, как думаешь, Itanium мог бы выстрелить?
Под итаниум был хорошо спроектированный C++ ABI, который теперь используется как стандартный в GCC. twitter.com/dcromster/stat…
22:18@backendsecret Разве Интел не собирается наступить на те-же грабли снова? Читал, что после всех Core I будет нечто… twitter.com/i/web/status/8…
Мне интересно, о чем идёт речь :) вообще у интела даже Xeon Phi x86-совместим twitter.com/dcromster/stat…
22:23@dcromster @backendsecret Что-нибудь эдакое квантовое? :)
Ах, хотелось бы мне быть архитектором квантовой ISA :) twitter.com/traffsh0w/stat…
22:26Не зря же я на госе по физике брал вопрос по выбору про алгоритм Дойча, в самом деле
22:27@backendsecret Статья была на уровне слухов. А Фи это же Pentium какой-то дорабатонный. Разве нет?
Все равно, если найдёте статью - дайте знать. А Xeon Phi, как сообщает википедия, действительно основан на микроарх… twitter.com/i/web/status/8…
22:31@backendsecret И тут у меня вопрос обывателя: а почему на такой древности, а не на Xeon там или i7?
Думаю, от оригинального пентиума там остался только in-order конвейер. В Xeon Phi есть SMT, кэши, 512b-регистры, мн… twitter.com/i/web/status/8…
22:43Будучи стажером в московском интеле, я исследовал поведение и свойства программ
22:58В одном из таких исследований я получил подтверждение принципа Парето: 80% времени исполнения приходится на 20% кода
23:00Объяснение этому феномену очень простое: программы действительно проводят большую часть времени в циклах :)
23:02Оптимизируйте вложенные циклы, друзья!
23:02@astarasikov @backendsecret Denver -- это та хреновина с кривым рекомпилятором на кристалле?
Воу-воу, JIT в JVM по-вашему тоже кривой рекомпилятор? twitter.com/feelthefrog/st…
23:03с другой стороны, преждевременная оптимизация есть зло - то, что я назвал боттлнеком, может таковым не быть
23:30В частности, вызовы виртуальных функций (и косвенные переходы вообще) хорошо предсказываются
23:33Всегда бомбит с постов, где пишут про их чудовищные накладные расходы
23:33@backendsecret Я бы сказал что сильно от задачи зависит. Точнее это может быть много мелких циклов в разных частях кода. Тогда всё плохо )
Плоский профиль - и наша цель, и наш злейший враг) twitter.com/alexanius/stat…
23:35# Вторник 48 твитов
@backendsecret Бомбить-то должно с того, что где виртуальный вызов -- там с большой вероятностью "прощай инлайн", если только не (D)PGO.0:04
@backendsecret Для обывателя это обозримый "оверхед": добавили virtual и стало херово. Обывателю всё равно, каков механизм этого "херово".
Хотел поинтересоваться: в jvm jit производится автоматическая девиртуализация? twitter.com/shipilev/statu…
0:26@backendsecret Ладно, про аэромех->расскажи. Это фалт что ли? Или все таки факи?
Как вообще в кремний то занесло? Кто вдохновил?
Да, поступал на ПМИ на ФАЛТ (на ФАКИ не было информатики). Попал в Интел через лабу МФТИ-Intel (компиляторы), потом… twitter.com/i/web/status/8…
0:35@backendsecret Кто-то даже находил смешным, что автоматический PGO оказался куда более распространён в джавовом мир… twitter.com/i/web/status/8…
Программистов невозможно заставить профилировать код, а в managed execution это можно делать прозрачно twitter.com/shipilev/statu…
0:38@backendsecret Но ведь программисты на С/С++ -- это ого-го! Они все прочитали Стандарт, глубоко знают свой тулчейн… twitter.com/i/web/status/8…0:40
@backendsecret Я когда девиртуализацию запилил, у меня 473.astar ускорился в 1.5 раза ;) Проблема, как уже сказали… twitter.com/i/web/status/8…0:53
Тупая железка - говорят программисты, когда что-то не работает.1:01
Тупые программисты - говорят железячники
Если определить эксперта как того, кто больше пиздит, чем делает, то я эксперт
Чему я научился за 4 года в индустрии twitter.com/fads93_zombie/…
1:02@fads93_zombie @shipilev а процессор может сам делать reorder инструкций с места, которое предсказал branch predictor?
Если я правильно понял вопрос, то это и так происходит в OOO-конвейере twitter.com/alexanius/stat…
1:28Про предсказание переходов, наверно, стоит поговорить отдельно. Пост на SO с очень наглядной аналогией для понимания stackoverflow.com/a/11227902
1:31@backendsecret Интересно что в списке нет AMD :)
Упс, это без задней мысли. У AMD хороший послужной список инноваций в архитектуре: amd64, интегрированный КП, HBM, … twitter.com/romanow_ua/sta…
2:20IntelのCPUの早見表…。 pic.twitter.com/jLGB1836ky7:16
@fads93_zombie @backendsecret А на чем железячники работают в интеле? Маки, сарфейсы, стационары или что-то ещё?
Инженеры пользуются обычными ноутбуками (HP и Thinkpad), реже стационарами, и еще реже маками. Разработка ведется н… twitter.com/i/web/status/8…
8:10@backendsecret можешь рассказать о процах с фпга?
К сожалению, я ничего о них не знаю. Альтеровский бизнес пока по большей части отдельно. twitter.com/yamironichev/s…
8:11@backendsecret почему маки не в почете?
Я думаю, что по чисто прагматическим соображениям: компании со штатом 100к человек дешевле поддерживать парк машин… twitter.com/i/web/status/8…
9:33@backendsecret а у вас винда? я раньше думал, если инженер то сам разбираешься со своей машиной и ос
На ноутбуках только винда, на удаленных рабочих станциях или винда, или Линукс. Люди работают, а не разбираются со… twitter.com/i/web/status/8…
9:42Хотя сам я долгое время был гентушником, что пришлось кстати в моей работе
9:45Тот случай, когда часы наблюдений за компиляцией какого-то дерьма делают тебя экспертом в компиляторах
9:47А кстати
На работе я пользуюсь
@backendsecret Что же мне выбрать, коли я Mac + Linux юзаю :D
Чем пользуетесь чаще twitter.com/strizhechenko/…
9:56Одно интересное наблюдение: у архитекторов, которые проводят эксперименты и обрабатывают статистику, пользуется популярностью Jupyter NB
10:16если в московском офисе я был одним из немногих, кто владел pandas'ом, то в штатах люди основательно взяли на вооружение этот инструмент
10:17А разработчики бэкенда пользуются средствами для анализа данных?
10:20@backendsecret а можно нубский вопрос? Почему процессоры с одинаковой частотой и кол-вом ядер настолько разные по производительности?
Производительность процессора определяется тремя составляющими:
10:37IPC - instructions per clock. IPC зависит от приложения и микроархитектуры процессора, борьба за повышение IPC ведется с обоих фронтов
10:41Кстати, пиковый теоретический IPC Эльбруса - 23, однако большинство задач не обладают таким параллелизмом, чтобы загрузить все устройства
10:45@backendsecret А как же всякие л3 кэши и синхронизация между ядрами?
Согласен, но кэши и протоколы когерентности относятся к подсистеме памяти, что лежит в т.н. uncore twitter.com/russianlagman/…
10:48@backendsecret спасибо! а эти самые ipc можно найти в каких открытых спецификациях? в консумерских вариантах ни разу не попадались.
Производительность консумерских процессоров проще всего оценивать по интересующим вас бенчмаркам :) twitter.com/_maximkuzmin/s…
10:51Иногда в новостях пишут: “Zen is 6-wide OOO CPU”, “Denver - 7-wide in-order”. Про микроархитектуру Intel и AMD пишет Agner Fog
10:52Я не специалист по uncore :)
10:53То есть IPC зависит от ILP задачи (instruction-level parallelism), ширины машины и способности машины извлекать параллелизм
10:57IPC: Интел больше вкладывает как в оптимизацию задач под свои процессоры, так и в ширину исполнения и способность CPU извлекать параллелизм
11:00Ширина исполнения определяется количеством инструкций, проходящих в такт по тракту конвейера
11:02Способность извлекать параллелизм out-of-order процессоров напрямую связана с размером окна переупорядочивания (ROB, RS, Load/Store Buffer)
11:03@backendsecret Нужен блиц курс по устройству процессора.
Или зря бы глоссарий
Хорошего блиц-курса или глоссария по архитектуре я не встречал :( twitter.com/krems5/status/…
11:15Хороший всеобъемлющий учебник про архитектуру и дизайн процессоров - Харрис и Харрис в русском переводе silicon-russia.com/2016/01/04/har…
11:17Не entry-level: технионовский курс про микроархитектуру от архитекторов Core webcourse.cs.technion.ac.il/234267/Winter2…
11:33Нашел! Запись трехдневного тренинга по архитектуре в Яндексе от моего коллеги Александра Титова (видео+слайды):
linkedin.com/pulse/3-day-cp…
@backendsecret Что думаешь насчёт Xeon'ов на домашних компьютерах?
Мечта любого энтузиаста - собрать себе рабочую станцию с двумя 12-core Xeon... и компилировать Gentoo на этом железе twitter.com/dcromster/stat…
19:16@backendsecret А единственный способ реально оценить производительность - замерить на конкретной задаче, под которую железка покупается19:17
@backendsecret А как же Хенннси и Паттерсон. Раньше на их основе ещё на курсере курс был, но его удалили. Есть на торрентах
Речь про Computer Architecture: A Quantitative Approach, которая считается библией. На курсере есть принстонский ку… twitter.com/i/web/status/8…
19:20Если честно, я так и не нашел ответа на вопрос зачем это нужно
19:21@krems5 @backendsecret Вот норм статья lighterra.com/papers/modernm…
Плюсую
“Modern Microprocessors – A 90-Minute Guide!” twitter.com/alexgpg/status…
@backendsecret А какая книжка самая умная и крутая?
Обзорная: Patterson, Hennessy "Computer Organization and Design", детали Out-of-Order: Shen, Lipasti "Modern Proces… twitter.com/i/web/status/8…
22:00Intel’s Core i9 Extreme Edition CPU is an 18-core beast engt.co/2qwBtEM pic.twitter.com/yWSkbUcAtw
О нет, они сломали понятную схему i3-i5-i7 twitter.com/engadget/statu…
22:05@backendsecret Хочешь сказать, что ты непричём? :D
Ну это же как Пентиум-5, которого так долго ждали, и который из-за этого ни в коем случае нельзя было выпускать twitter.com/dcromster/stat…
22:18Pentium 5, Core i9 - как каденция в музыке, которая наступает после напряженного ожидания. Теперь все расслабятся :/
22:21# Среда 53 твита
Доброе утро, разработчики бэкенда! Я обещал поговорить о московской школе процессорных технологий, к которой нескромно отношу и себя
7:52Наверное, вся история начинается с института точной механики и вычислительной техники, в котором разрабатывались Эльбрусы
7:54Наверное, будет разумно связать ранние процессорные разработки института с именем С.А. Лебедева, который разрабатывал МЭСМ в Киеве
7:57Напомню, что МЭСМ - первая электронно-вычислительная машина в континентальной Европе (по википедии)
7:58Лебедев в ИТМиВТ начинает работать над серией БЭСМ, на которых рассчитывают баллистику ракет и водородную бомбу (как рассказывали в ЦИАМ)
8:03Последняя машина серии БЭСМ-6 становится первой советской суперэвм на транзисторах.
8:05Кстати, про лампы. Бабаян рассказывал байку про ламповые машины: во время испытаний системы ПВО в ЭВМ взорвалась лампа
8:08В системе была предусмотрена избыточность, поэтому лампу благополучно заменили, и ракета была успешно сбита
8:10Теперь расскажите, как вы меняли диск в RAID hotswap
8:12Так вот. БЭСМ-6 была конвейеризованной машиной с виртуальной памятью и обеспечивала 1 MIPS. В 1965 году.
8:16Как шутил Бабаян, перенос при арифметическом сложении в тех машинах начинался в одной комнате, а заканчивался в другой
8:17Кстати, американское слово, означающее размещение элементов процессора на чипе (floorplan) тогда носило буквальный смысл
8:18За БЭСМ-6 последовал Эльбрус-1 и Эльбрус-2, разработанные под руководством Бурцева (про него часто вспоминал Бабаян)
8:22Эльбрус-2 — это фантастическая машина для СССР конца 70х-начала 80х годов
8:23Out-of-Order суперскаляр, многопроцессорность, виртуальная память, интегрированный КП, CRC-память, тегированные тип… twitter.com/i/web/status/8…
8:25Сошлюсь на пост Бориса Мурташина на Хабре: habrahabr.ru/post/313376/
8:26Для Эльбруса-2 под руководством Пентковского был разработан язык Эль-76. В Эль-76 были исключения, которые назывались просто: “ситуация”
8:29Прошу прощения: Борис Муратшин
8:38Эльбрус-2 вместе с Эль-76 (который служил ассемблером) и ОС был сдан госкомиссии в 1985 году. С тех пор он используется в ПВО Москвы
8:40Разработка Эльбруса-3 началась в 1986 году уже под руководством Бориса Арташесовича Бабаяна
8:42Идеи Эльбруса-3: EPIC VLIW система команд, продвинутые микроархитектурные фичи (типа асинхронного буфера префетча Array Prefetch Buffer)
8:47Про Эльбрус издана книга (Ким, Волконский из МЦСТ): mcst.ru/vyshla-v-svet-…
8:50Как по мне, киллер-фича Эльбруса, которая до сих пор широко не реализована - это контекстная защита (то есть ACL на уровне функций и данных)
8:54Эльбрус-3 не взлетел отчасти из-за недофинансирования и распада СССР. Бабаян начал искать контакты с западом, который тоже был не прочь
8:58Бабаян сконтактировался с Дейвом Дитцелом, тогда CTO в Sun Microsystems по архитектуре SPARC и основал МЦСТ как контрактора для Sun
9:00Пентковский уехал в Америку и сделал Пентиум.
9:01В каждой шутке доля шутки: Пентковский был архитектором Pentium 3, насколько мне известно, он работал над SSE
9:03В то же время Бабаян рассказал Дитцелу все свои идеи про VLIW и двоичную трансляцию, и Дитцел основал Трансмету
9:06Интервью Дитцела, в котором он говорит про свою историю работы с советскими/российскими архитекторами… twitter.com/i/web/status/8…
9:07Но потом что-то пошло не так и Дитцел перестал контактировать с МЦСТ. В МЦСТ наступили тяжелые времена. Бабаян начал делать E2K (Elbrus2000)
9:11Маркетинг E2K был потрясающий: в прессе его называли “убийца Merced (Itanium)”, история с Дитцелом указывала на то, что русские не блефуют
9:13Как мы знаем, Эльбрус-2000 был выпущен и успешно работает (и даже продается за 400 тысяч). Так себе история успеха, но все же.
9:14Потом в 2004 году Интел решил, что ему не нужно никакого убийцы Итаниума (он его убьет сам), и большая часть коллектива МЦСТ перешла в Интел
9:15Кстати, первый офис Интел открылся в России в 1993 году, но не Москве, а в… Сарове. Да, рядом с закрытым городом ядерщиков Арзамасом-16
9:19Что вместе с новостью о работе Sun с коллективом ИТМиВТ породило слухи, что якобы госдеп спонсирует ИТ-компании, чтобы те нанимали русских
9:21Подтверждений этому я не нашел. Но вообще звучит разумно и дальновидно со стороны госдепа.
9:22В Интеле коллектив продолжил работать с джавой (опыт работы с Sun оказался не лишним), компиляторами, а также делать R&D в архитектуре
9:25На этом я закончу свой рассказ об истории московской процессорной школы, потому что здесь начинается настоящее (и будущее) :)
9:27Спасибо за внимание!
9:28@backendsecret Если ты про Эльбрус-4С, то уже 200К же стоит ;)9:33
@backendsecret А можешь рассказать что сейчас происходит с офисами разработчиков intel в России и с базовой кафедро… twitter.com/i/web/status/8…
Кафедра микропроцессорных технологий в МФТИ работает, а про офисы не могу сказать. Тонко намекну, что я переехал, н… twitter.com/i/web/status/8…
9:35@backendsecret Кстати, у нас сейчас портируют sanitizer с аппаратной поддержкой ;)
Киллер-фича Эльбруса еще заставит мир дрогнуть! twitter.com/alexanius/stat…
9:36Зря они так. Убийца Итаниума таки вышел в прошлом году.Правда сам Итаниум прекратили выпускать уже с 15 лет наза… twitter.com/i/web/status/8…
В те темные времена еще не было так очевидно, что Итаниум не выстрелит, у Интела ведь могло хватить инерции перевес… twitter.com/i/web/status/8…
9:41@backendsecret да речь не о том. Просто спустя 15 лет продавать убийцу Итаниума за 10-кратную цену - как-то запредельно.
Давайте спросим эксперта @alexanius о вопросах ценообразования на Эльбрусы twitter.com/workaround9/st…
9:47@backendsecret без полноценных команд целочисленной арифметики, производительность средних моделей IBM, скопирована… twitter.com/i/web/status/8…
Схожесть набора команд и копирование - разные вещи, согласитесь? ЕС ЭВМ копировались, в других случаях было заимств… twitter.com/i/web/status/8…
10:03@backendsecret @alexanius За мелкосерийку нормальный ценник. Просто он в принципе нафиг он никому не нужен, тем бол… twitter.com/i/web/status/8…10:04
Про идеи Барроуз в Эльбрусе говорил Бабаян. Про идеи Эльбруса в Трансмете говорил Дитцел :) была ли трансмета скопирована с Эльбруса? Нет
10:05@imdefined @backendsecret И напоследок - на рынке российских разработок быстрее ничего нет и не предвидится. А я по… twitter.com/i/web/status/8…11:07
@imdefined @backendsecret Вообще нужен там где есть специальные требования. Пытаемся ещё выйти на гос. рынок, но ну… twitter.com/i/web/status/8…
Кмк, адекватная ниша для Эльбрусов. Чтобы следующий Wannacry просто не запустился :) twitter.com/alexanius/stat…
11:09Ryzen Threadripper is an actual BEAST. (mobile quadcore Ryzen chip on the right) pic.twitter.com/IrxoYHUpql
Он больше итаниума! twitter.com/shen/status/86…
21:48Ryzen Threadripper will release this summer with a total of 64 PCIe lanes and no PCIe segmentation in the lineup.… twitter.com/i/web/status/8…
64 PCI-e линий - это SLI в 4x конфигурации! twitter.com/oc3d/status/86…
21:50AMD Threadripper: 16 cores, 32 threads pic.twitter.com/G8zZFRMUs2
21:57Мне напомнили, что линкедин доступен не везде :/
CPU Organization Training -- day 1 youtu.be/uf3p0owPcfQ via @YouTube
# Четверг 44 твита
Привет читателям backendsecret от Юрия Панчула, организатора перевода учебника Харрис-Харрис pic.twitter.com/Q8sBlsfOsw
0:53Из разговора с коллегой: "мне однажды приснилось в кошмарном сне, как меня попросили переписать распределение регистров в компиляторе"
1:43Какой самый странный сон был у вас?
1:53@backendsecret Почувствовал себя во сне структурой данных над которой выполняют операцию traverse. Не очень приятно.8:44
Кстати, еще про компилятор. Считается, что компилятор может убирать абстракции, генерировать оптимальный код, но не может менять алгоритм
8:46Вообще говоря, автоматическое распараллеливание — очень даже пример замены алгоритма (и ICC его охотно сделает по опции)
8:58Только в действительности большинство пользователей хотят, чтобы компилятор как можно меньше менял их код
9:00Чего стоит история с заменой printf на puts в GCC, вызывавшей разное поведение при NULL-строке ciselant.de/projects/gcc_p…
9:02Но если вам очень не хочется переписывать код (или даже вставлять прагмы), стоит посмотреть на возможности ICC: software.intel.com/en-us/articles…
9:07Например, ICC способен обнаружить цикл перемножения матриц и другие примитивы и заменить их на интринсики/вызовы параллельных версий
9:10Моя любимая фраза из интеловского гайда по векторизации: Let the compiler help you to help the compiler to vectoriz… twitter.com/i/web/status/8…
9:19Ах да, в C++17 предусмотрены расширения для параллелизма (execution policies), и Интел предоставляет Parallel STL как часть Parallel Studio
9:25Getting Started with Parallel STL: software.intel.com/en-us/get-star…
9:26Другая сторона — низкоуровневые оптимизации с учетом микроархитектуры, по которым у Интела есть офигенный мануал intel.com/content/www/us…
9:32Например, каким должен быть цикл, чтобы он исполнялся из LSD: pic.twitter.com/dMTLNaYpTf
9:34Или вот, как сказать механизму переименования, что можно разорвать зависимость между инструкциями через регистр (“Z… twitter.com/i/web/status/8…
9:37И я вам скажу, что такие вещи критически важны — никто не хочет платить лишний такт в цикле, который крутится миллиарды итераций
9:42Допустим, по профилю вы поняли хотспот вашего кода, максимально его соптимизировали и хотите понять, возможно ли еще его ускорить
9:55Интеловские процессоры предоставляют доступ к микроарх счетчикам (Perf counters), которые могут указать на ботлнеки и помочь дотюнить код
9:58Сбор счетчиков — несложный процесс, самый ад в их обратном отображении на участки исполнения
10:00Мой научный руководитель говорил: понятие instruction pointer в машине, которая исполняет 4*10^9 инструкций в сек,бессмысленно для человека
10:03Опенсорс утилита, в рилтайме собирающая и отображающая счетчики: Processor Counter Monitor github.com/opcm/pcm
10:06Но, конечно, самый мастхэв в низкоуровневом перфомансном анализе — это VTune software.intel.com/en-us/intel-vt…
10:08Какие заключения можно делать из низкоуровневого перфомансного анализа? Моя любимая статья на эту тему: Profiling a warehouse-scale computer
10:10Гугловцы собирали микроархитектурную(!) статистику по своим задачам на реальных данных в течение трех(!) лет
eecs.harvard.edu/~skanev/papers…
Они поняли, как распределен их ботлнек по конвейеру процессора pic.twitter.com/BCTTw1UO33
10:14Выяснили, какие подзадачи имеет смысл выносить в ускорители (“datacenter tax”) pic.twitter.com/SqxqcSL8u6
10:17И рассказали производителям процессоров, чего они хотят :) pic.twitter.com/GEytpopRm0
10:19Да, методология перф анализа тоже очень важна: Top-Down за авторством интеловца Yasin ieeexplore.ieee.org/document/68444…
10:23Чем Top-Down лучше, чем оценка счетчиков типа числа промахов в кэш: промахи могут не быть боттлнеками — OoO умеет скрывать задержки
10:25То неловкое, когда пришел в @backendsecret рассказывать про бэкенд компилятора и бэкенд конвейера процессора
10:38@backendsecret постоянно резолвлю какие-то сложные типы по сне11:00
@backendsecret откуда инфа про большинство пользователей? sounds phishy ;)
Оценочное суждение, соцопросов я не проводил :) но главный по плюсам в гугле высказывает похожее мнение… twitter.com/i/web/status/8…
11:11Ассоциативность кэшей для самых маленьких pic.twitter.com/KZyR3QdulX
11:18и другие замечательные иллюстрации про CS и CompArch из Беркли csillustrated.berkeley.edu/illustrations.…
11:18@backendsecret Я думал R. Smith там главный по плюсам :) Энивэй, все хотят чтоб их программы были быстрыми. Даже ко… twitter.com/i/web/status/8…
Ну оптимизации и изменения алгоритма — это разные вещи. Я сомневаюсь, что космос очень хочет -funsafe-math :) twitter.com/1101_debian/st…
11:21@backendsecret Вот еще хорошая бумага на эту тему: The Correctness-Security Gap in Compiler Optimization nebelwelt.net/publications/f…11:36
Woke up early, thinking for 5 minutes my dreams were just running in interpreter, and I needed to sleep more to compile them. #fuckingjob
В тему поехавших снов twitter.com/shipilev/statu…
11:42Товарищ рассказывал, как ему приснилось, как я подключался в его сон по ssh и УДАЛЯЛ ОТТУДА ЛЮДЕЙ (помогал ему ставить Gentoo)
11:45Из перевода Харрис-Харрис pic.twitter.com/rdFEjA4Djw
12:05Floorplan ENIAC: как перенос начинался в одной комнате и заканчивался в другой (из музея компьютерной истории) pic.twitter.com/wVrZdrw9cP
12:10We will fade from Siri's memory in Least-Recently-Used fashion twitter.com/MicroSFF/statu…12:19
@backendsecret Мне сегодня приснилось что у меня цикл не unroll'ился из-за того что в нём был код плюсовых exceptio… twitter.com/i/web/status/8…
О_о
Цикл не анроллится, не растёт кокос twitter.com/alexanius/stat…
Сегодняшнее вечернее чтение: What every programmer should know about memory lwn.net/Articles/25096…
(спасибо @krems5 за подсказку)
# Пятница 43 твита
Top-Down перф анализ: нашел в открытом доступе презентацию автора методологии Ясина webcourse.cs.technion.ac.il/234267/Winter2… pic.twitter.com/NRFcinS4Jh
8:50Я не придумал, о чем поговорить сегодня, поэтому будем говорить обо всем по чуть-чуть :)
8:57Речка Сетунь, в честь которой был назван советский проект компьютера на троичной логике. Протекает рядом с МГУ, где… twitter.com/i/web/status/8…
9:00Минимальная адресуемая единица машины — трайт, который равен шести тритам. Because fuck boolean logic, that’s why ru.wikipedia.org/wiki/%D0%A1%D0…
9:01Самая известная книга по компиляторам — Dragon Book Ахо-Ульмана
en.wikipedia.org/wiki/Compilers… pic.twitter.com/P1gUiijT5p
Не сказать, что вот прям всем ее нужно читать, сам я ее (конечно же) не осилил целиком. Читал только ту часть, что про IR и оптимизации
9:13Когда я переезжал и раздавал друзьям книжки, эта была самой желанной (особенно хотели её ФИВТы)
9:16Кстати, в Драгон Буке есть несколько отсылок к работам Ершова: числа Ершова в главе про кодогенерацию и ссылки на е… twitter.com/i/web/status/8…
9:31Ершов основал новосибирскую школу компиляторных технологий, про которую я бы с удовольствием послушал знающих людей
9:33Я знаю только, что к этой школе принадлежат Касьянов и Евстигнеев, которые написали лучшую книгу про графы и компил… twitter.com/i/web/status/8…
9:36Дональд Кнут дружил с Андреем Ершовым и написал про него заметку с воспоминаниями cs.stanford.edu/~uno/papers/er…
9:47@backendsecret Которую нигде не купить :(
Увы, я сам долго искал и все безуспешно. Появляется на авито и сразу исчезает twitter.com/imdefined/stat…
9:48Кнут просил преподавателя русского языка взять книгу Ершова про прогр. для БЭСМ как учебный текст, но заодно заботал по ней и компиляторы
9:51Джон Маккарти, создатель Лиспа и основатель MIT AI Group, приезжал к Ершову в Новосибирск на два месяца
computer.org/cms/Company%20…
Новосибирску привет, в частности тем, кто учился у Касьянова и Евстигнеева (а может даже и Ершова)
10:11@backendsecret О! Раз затронул эту тему: почему не делаютпроцессоры на тритичной логике?
Я думаю, дело в физике: проще (быстрее, дешевле) отличать два уровня, чем три twitter.com/dcromster/stat…
10:15@backendsecret разве производительность не выше чтобы перевесить недостатки?
Думаю, что сложность различения трех уровней настолько высока, что процессоры работали бы на 10x напряжении и на 10… twitter.com/i/web/status/8…
10:21Но я в этом деле совсем не специалист
10:21Но вообще да, вероятно, имеют смысл только компьютеры на двоичной и троичной логике, тк оптимальное основание системы счисления — e
10:26Кнут оценивал, что эффективность хранения/передачи данных повысится на 36% при переходе с двоичной на троичную систему
10:50С оптическими процессорами должно быть проще перейти на троичную логику: один хер различать состояния поляризации
10:57@raxpost @backendsecret Давно мечтаю сделать эмулятор троичного процессора :)
Осторожно: этот Твиттер курируют наркоманы! twitter.com/dcromster/stat…
11:08Какова этическая сторона оптимизаций программы? Как чувствуют себя инструкции, которые были удалены?
ПОДУМОЙ twitter.com/fads93_zombie/…
11:14Главное различие России и Штатов: в России у меня был пакет с пакетами из пятерочки, а в штатах — пакет с БУМАЖНЫМИ пакетами амазон прайм
11:19Как вы предпочитаете называть свою профессию?
11:39@backendsecret А ещё надо реабилитировать инструкции, удалённые незаконно. Ещё при reordering'е нужно предлагать им… twitter.com/i/web/status/8…
ААААА!! twitter.com/alexanius/stat…
11:40Если вы хотели знать, в чем разница между акциями, опционами и RSU и как должен выглядеть оффер от стартапа
github.com/jlevy/og-equit…
@backendsecret Сениор Чиф Ниндзя Рокстар Юникорн Райдер оф Диджитал Трансформейшн11:45
@backendsecret Брат, друг, тышто, поляризации только две: левая и правая, остальное суперпозиции. Бинарно легко различать, а дальше сложнее
Короче, нет — поляризация фотона эквивалентна кубиту информации, а не биту twitter.com/krems5/status/…
11:54Короче, нет — поляризация фотона эквивалентна кубиту информации, а не биту twitter.com/krems5/status/…
Ставь лайк, если тоже ждал, когда разработчики бэкенда будут спорить о поляризации фотона twitter.com/backendsecret/…
12:01Немногие знают, что Линус собирался переходить из Трансметы в Эльбрус...
linux.slashdot.org/story/99/03/31…
@backendsecret А вот для вычислений они подходят довольно плохо, потому что их сложно запутывать.На вскидку только… twitter.com/i/web/status/8…
Физтех финишд? twitter.com/krems5/status/…
12:27@backendsecret Поэтому например dwave и IBM используют сверхпроводниковые кубиты12:28
Знакомимся с классикой CS: A case against GOTO statement, Эдсгер Дейкстра
cs.utexas.edu/users/EWD/ewd0…
Кстати, про структурированное программирование. В чем компилятор точно хорош, так это в уничтожении структуры программы на языке высок уров
13:18Делал анализ трасс исполнения на предмет вложенной структуры кода (строил Program Structure Tree). Нифига бинарный код не структурирован :(
13:19@backendsecret А я думал, что ее покупают из-за 'рекламы' в известном фильме оО
А что за фильм? twitter.com/bradipus/statu…
19:10MaxSim: платформа для симуляции, перф анализа и кодизайна, основанная на Maxine VM и ZSim. ISPASS 2017 best paper
github.com/beehive-lab/Ma…
Пост Михаила Сваричевского о об экономике высоких технологий в российских реалиях. Советую habrahabr.ru/post/218171/
19:43@backendsecret Фильм назывался “Хакеры” который самый древний, там, кстати и другая литература упоминалась21:08
Знаменитости на этаже pic.twitter.com/M8AH7b8lgm
23:11# Воскресенье 48 твитов
Orwell — система видеонаблюдения с компьютерным зрением от зеленоградской компании Элвис elveesneotek.ru/index.php?id=4
5:28Лайфхак от архитектора суперкомпьютеров pic.twitter.com/2GDMRYES9U
10:08Конечно, нельзя не вспомнить другого гения простых решений pic.twitter.com/nOTt1VQU20
10:14Давайте начнём интерактив. Помогите следопыту Даше определить, с какой аудиторией она имеет дело
Так как здесь серьезная публика, задам серьезный вопрос — как вы воспитываете своих детей? чтобы они учились у вас/… twitter.com/i/web/status/8…
10:20Я имею в виду, что вы делаете, чтобы привить интерес к математике естественнонаучным дисциплинам, развить технический склад ума?
10:22Либо расскажите, как этот интерес появился у вас лично
10:23@backendsecret В саду показывали интересные примеры. В школе показали как считать быстро. Каждый ужин считали заков… twitter.com/i/web/status/8…10:25
@backendsecret школы. Итог: на математике скучно-учитель даёт доп задачи. считает тысячами. Понимает отрицательные… twitter.com/i/web/status/8…10:26
@backendsecret Например: в саду за ужином считали по 2, по 3 и т.д. до 100 устно.
Насколько я помню, счет до 100 был в моем первом классе, и было очень смешно упираться в это ограничение twitter.com/dcromster/stat…
10:30Почему я спрашиваю: сегодня хайкал по природе с Юрием Панчулом, который вовлекает детей (в том числе своих) в проекты на FPGA
10:33@backendsecret а сейчас счёт до 10, в конце первого до 20 только + и -. Во втором таблица умножения до 20, а + и - до 100. =>
О_о
Таблица умножения была во втором, да, но про счёт очень странно такое слышать twitter.com/dcromster/stat…
@backendsecret познакомишь? :)
Он готовит материалы для преподавателей школ и университетов. Как только будет что-то готовое, напишу у себя) А пок… twitter.com/i/web/status/8…
10:37Писал длиннопост в ЖЖ про путь в программировании от школы до Интела (больше мемуары, чем руководство по воспитанию)
interrupthandlr.livejournal.com/11888.html
TL;DR — я хотел делать процессоры с восьмого класса после дизассемблирования мотороловской прошивки и чтения ARM-ассемблера :)
10:51Мораль: если хотите, чтобы ваш ребенок интересовался низкоуровневым программированием, дайте ему телефон, который можно перепрошивать
10:52Последняя техническая тема, которой я хочу коснуться: защищенные вычисления
11:09Интерес к этому в индустрии нарастает: в ПО развивается формальная верификация, в HW — механизмы защиты
11:12Проект L4Verified — верифицированное микроядро от спека до исполняемого файла ts.data61.csiro.au/projects/TS/l4…
11:13Появляются статьи про доказательство корректности оптимизаций компилятора: cs.rutgers.edu/~santosh.nagar…
11:15Интел представил расширение SGX (Software Guard Extensions) — механизм изоляции кода от другого ПО и даже ОС: software.intel.com/en-us/blogs/20…
11:20Также представлен Intel MPX (Memory Protection Extensions): защищенные указатели software.intel.com/en-us/articles…
11:21AMD представили похожие технологии SME (Memory encrytion) и SEV (encrypted virtualization) amd-dev.wpengine.netdna-cdn.com/wordpress/medi…
11:24Подход Эльбруса к защищенным вычислениям (контекстная защита): old.computerra.ru/terralab/archi…
11:27И большая статья Бабаяна про защищенные информационные системы. Читаю и страдаю, что этого до сих пор нигде нет mcst.ru/files/521c57/7…
11:30Хотя появляются перспективные проекты вроде lowRISC: RISC-V плюс тегированная память lowrisc.org
11:31Команда МЦСТ сделала защищенную реализацию C и C++ и нашли баги в SPEC 92, 95, 2000
mcst.ru/doc/SecureLang…
Контекстная защита — механизм, позволяющий исполнять процедуры без непредусмотренных взаимодействий типа подмены адреса возврата
11:40В принципе, этот механизм может позволить исполнять процедуры разных процессов в одном адресном пр-ве, и никто не испортит чужих данных
11:42Моё эфирное время подходит к концу. Хочу сказать огромное спасибо @dcromster за свободный микрофон для программистов! (практически #кактус)
11:55@backendsecret Описанный Фейнманом метод минимизирует время принятия решения. Если нужно максимизировать награду и… twitter.com/i/web/status/8…12:14
Спасибо разработчикам бэкенда и всем читателям! Всем кода без багов и быстрых процессоров, и наоборот) С вами был @fads93_zombie
12:23@backendsecret а что не бигбраза?
BIG BROTHER 2000 IS WATCHING YOU twitter.com/andrey_68/stat…
12:25@backendsecret Я так пытался кодить эльфов по кастомные прошивки сименсов
Офигенное было время twitter.com/mr_the/status/…
13:20Реквестирую годный способ для освобождения времени для диплома, @pausky и всем студентам в моей ленте. twitter.com/backendsecret/…
Дропайте сначала ненужные задачи, потом нужные задачи. Тайм-менеджмент - это не все успевать, а только то, что важно twitter.com/volderbah/stat…
13:28@backendsecret @Gorysko Цей лайфхак відомий архітекторам супермаркетів, тому найбільш потрібні продукти знаходяться… twitter.com/i/web/status/8…13:44
@backendsecret Дайте ему телефон, на котором не пойдут игры, если его не перепрошивать)
Именно! twitter.com/poctek/status/…
14:09@backendsecret Это не то, что пытались сделать в iAPX432? Не то, что сделали в мэинфреймах IBM, которые ведут родословную из System/360?
Похоже на iAPX. Но там был выбран подход capability list, из-за которого были высокие накладные расходы twitter.com/feelthefrog/st…
19:25Образовательные проекты по микроэлектронике в России и Украине silicon-russia.com
20:02Does AMD Ryzen have a bug that's causing segfaults and machine check errors?forums.gentoo.org/viewtopic-p-80…… twitter.com/i/web/status/8…
Пост Дэна про ошибки в процессорах: danluu.com/cpu-bugs/ twitter.com/danluu/status/…
20:38Про использование ECC в серверах и на десктопе (к вопросу о Xeon дома)
TL;DR — сначала настройте бэкап
danluu.com/why-ecc/
Инсайды от @FioraAeterna о том, как устроена процессорная индустрия pic.twitter.com/vjb9d62tO9
20:57Напоследок: интервью с Борисом Бабаяном про Эльбрус, i432, безопасность, языки высокого уровня, и x86-совместимость
geektimes.ru/post/205168/
What's the difference between Software Engineers, Programmers & Developers?👍 Jer, 👍! pic.twitter.com/pzOlPDOJ3c
Правильный ответ на вопрос про инженеров, программистов и разработчиков twitter.com/chrismaddern/s…
21:29@backendsecret @FioraAeterna Опасно низкий bus-factor
Индустрия перестала быть сексуальной, многие люди не хотят задерживаться на одном месте на срок процессорного проек… twitter.com/i/web/status/8…
21:52Вообще я никогда не занимался тайм-менеджментом. "Правильно то, что качает" - Роман Михайлов
23:04>Дропайте сначала ненужные задачи, потом нужные задачиЯ – прирожденный тайм-менеджер. Все задачи дропнул и успел! twitter.com/backendsecret/…
Дзен тайм-менеджмент: задач нет, время бесконечно twitter.com/sudodoki/statu…
23:18Секреты тайм-менеджмента от @backendsecret pic.twitter.com/dq8xQj6VE0
23:28Пора передавать микрофон следующему участнику. Всем пока! Напоминаю, что с вами был @fads93_zombie
23:38# Ссылки
software.intel.com
- https://software.intel.com/en-us/articles/automatic-parallelization-with-intel-compilers
- https://software.intel.com/en-us/get-started-with-pstl
- https://software.intel.com/en-us/intel-vtune-amplifier-xe
- https://software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx
- https://software.intel.com/en-us/articles/introduction-to-intel-memory-protection-extensions
other
- http://vk.com/pipelinestall
- https://arstechnica.com/gadgets/2017/03/intel-still-beats-ryzen-at-games-but-how-much-does-it-matter/
- http://www.itworld.com/article/3196079/data-center/intels-itanium-once-destined-to-replace-x86-in-pcs-hits-end-of-line.html
- https://stackoverflow.com/a/11227902
- http://agner.org/optimize
- http://www.silicon-russia.com/2016/01/04/harris-harris-in-russian/
- http://www.silicon-russia.com/
- http://webcourse.cs.technion.ac.il/234267/Winter2016-2017/ho.html
- http://webcourse.cs.technion.ac.il/234267/Winter2016-2017/ho/WCFiles/Perf%20Analysis%20in%20OOO%20cores%20-%20Ahmad%20Yasin.pdf
- https://www.linkedin.com/pulse/3-day-cpu-organization-training-alexander-titov
- https://habrahabr.ru/post/313376/
- https://habrahabr.ru/post/218171/
- http://www.mcst.ru/vyshla-v-svet-kniga-mikroprocessory-i-vk-semejstva-elbrus
- http://www.mcst.ru/files/521c57/7c6487/1a361c/000000/secure_information_system_v5_2r.pdf
- https://youtu.be/uf3p0owPcfQ
- http://www.ciselant.de/projects/gcc_printf/gcc_printf.html
- http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html
- https://github.com/opcm/pcm
- https://github.com/jlevy/og-equity-compensation
- https://github.com/beehive-lab/MaxSim
- http://www.eecs.harvard.edu/~skanev/papers/isca15wsc.pdf
- http://ieeexplore.ieee.org/document/6844459/
- http://csillustrated.berkeley.edu/illustrations.php
- https://lwn.net/Articles/250967/
- https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%83%D0%BD%D1%8C_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80)
- https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools
- https://cs.stanford.edu/~uno/papers/ershov.tex.gz
- https://www.computer.org/cms/Company%20Home/Public/Computer.org/Computing%20Pioneers/pdfs/E/Ershov.pdf
- https://linux.slashdot.org/story/99/03/31/2324218/linus-will-move-to-moscow-to-work-with-elbrus
- http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF
- http://elveesneotek.ru/index.php?id=4
- http://interrupthandlr.livejournal.com/11888.html
- https://ts.data61.csiro.au/projects/TS/l4.verified/
- https://www.cs.rutgers.edu/~santosh.nagarakatte/papers/pldi2013.pdf
- http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
- http://old.computerra.ru/terralab/archive/system/217182/
- http://www.lowrisc.org/
- http://mcst.ru/doc/SecureLanguagesImplementation-req_rus-2008.doc
- https://danluu.com/cpu-bugs/
- https://danluu.com/why-ecc/
- https://geektimes.ru/post/205168/