Pull to refresh
372
20.1
Юрий Панчул / Yuri Panchul @YuriPanchul

Проектировщик CPU, GPU, сетевых микросхем

Send message

15 лет назад я думал что образование в области компьютерной архитектуры поломано только в России, а на Западе с этим все хорошо. Что значит "поломано"? Студент может поговорить про суперскалярные процессоры и многоядерные кластеры, но не может ничего спроектировать.

Но потом я поинтервьировал кучу западных студентов, и обнаружил что такое явление есть даже в вузе X с хорошими учебниками и стоимостью образования $90 тысяч в год.

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

И я выдвинул теорию, что им профессор дает готовый код процессоров посимулировать и посинтезировать, а сами они на верилоге ничего не пишут. То есть у меня в голове образовалась модель такого студента, своего рода теоретический Бозон Хиггса, который умозрительно представили задолго до обнаружения.

И вот сегодня я такой Бозон Хиггса засек на LinkedIn. Выпускник этого самого вуза X написал пост, как он изучал учебник Хеннесси-Паттерсона. Он показал фото листка бумаги, испещренного заметками и диаграммами. Он просто сидел, читал по частям учебник и делал такие заметки.

Проблема с такого рода обучением заключается не только в том, что у студента может образоваться каша в голове - например он может путать обычный кэш с кэшем трансляций адресов в TLB. Он может также понять некоторые вещи наоборот и протащить такое понимание до конца, так как у него нет практики, которая бы отсекла такую ошибку сразу. Ну и то что он 90% информации забудет по пути - это тоже данность.

Ну я короче написал ему, что нужно каждую концепцию подтверждать для себя упражнением. Выучил статический конвейер CPU - написал процессорик с несколькими инструкциями на несколько сот строк. Выучил кэш - написал модуль на несколько сот строк. Предсказатель перехода итд. И ради бога, без чатгпт - с ним это не выучится.

А также брать процессоры с открытым кодом, запускать их в симуляции и смотреть как в нем инструкции ходят по конвейеру.

Для Бозона Хиггса эта идея была в новинку. А между тем такой же подход нужно делать и с курсами по компиляторам, и ядрам OS.

Хотя зачем я все это говорю. Сейчас грянет LLM и наша цивилизация исчезнет.

Tags:
+36
Comments13

У меня есть знакомый энтузиаст LLM, который также изучает верилог. Я попросил его написать инструкцию к упражнению с неким сенсором, который он интегрировал. Он разумеется сбросил это на LLM, я почитал и понял, что LLM нужно запретить как распостранение Экстази и "солей" среди молодежи. Точно так же как "дизайнерские наркотики" дают ощущение счастья и достижения без труда, сгенеренная LLM документация выглядит как реальная, вот только читателю она не поможет.

Что нужно читателю? Картинку как подцепить сенсор к плате, временную диаграмму сигналов которые от него выходят и пару слов про проблемы, которые у него возникнут (дребезг) и как их стоит решать. Так чтобы было достаточно информации, чтобы сесть и написать код на верилоге.

Что выдал LLM? Сначала пять абзацев мутного словестного описания что "изменения переключателей проходят некоторую последовательность, позволяющую определить направление", с галлюцинациями что движется и что неподвижно. Потом не имеющую отношения к задаче информацию, из каких материалов делаются эти сенсоры в разных странах мира, чтобы быть дешевыми для хоббистов и образовательных учреждений. Далее про разные способы решения проблемы дребезга, в том числе способы, не имеющие отношения к данной ситуации. И наконец, куски определения пинов из QSF и XDC файлов из случайных примеров в интернете, которые не имеют отношения к описанному примеру, так как в нем во-первых эти файлы не используются (другой вендор, другой способ задания пинов), а во-вторых, в нем эта часть проекта абстрагирована (пользователю вообше это не нужно это делать).

То есть текст просто водит читателя за нос, не давая ему никакой полезной информации для решения проблемы. Но даже это не важно, потому что читатель этот текст читать не будет, так как учует LLM в заголовке и убедится в третьем предложении, после чего перестанет читать. Текст является иллюстрацией терминов "сделать на отцепись" и "из дерьма и палок".

UPD: И самое страшное: это 27 страниц вместо 1 страницы полезной инструкции, которую я ожидал. ДВАДЦАТЬ СЕМЬ СТРАНИЦ ЛАБУДЫ !!!

Я хочу обратно в годы, когда этого ужаса не было. Нашу цивилизацию ждут тяжелые времена. Я уже видел в ЖЖ посты агитирующие на перевод всей порноиндустрии на generative AI.

Tags:
Total votes 19: ↑16 and ↓3+15
Comments18

На ютюбе вышло видео Сергея Сафонова Как Intel создал ARM, ARM похоронил MIPS, на очереди X86? Видео хорошее, в нем нет крупных косяков, но есть крупная дыра (или я просто смотрел невнимательно и пропустил?), отсутствующая информация о ключевом событии. В нем упадок RISC-процессоров в районе 2000 года рассматривается как некая загадочная энигма, а между тем все не просто, а очень просто. Вся индустрия в конце 1990-х ждала выхода процессора Intel Itanium, которому предсказывали взрывной рост и распостранение. Всем остальным процессорам предписывалось в организованном порядке идти на кладбище истории.

Из-за прогнозируемого триумфа Итаниума, HP отказались от своего RISC-процессора HP-PA, который в лучшие годы занимал 40% рынка рабочих станций для автоматизации проектирования электроники. DEC забила на свой RISC-процессор Alpha, на который еще в середине 1990-х спортировали Windows NT. Silicon Graphics перестали использовать MIPS для графики для Голливуда и отделили от себя MIPS Technologies которые стали специализироваться на лицензировании процессорных ядер для встроенных устройств. IBM и даже Sun собирались перейти на Itanium.

Однако когда Itanium вышел, его продажи были в десятки раз ниже чем прогнозировалось. Процессор строился на архитектуре VLIW, как современный российский Эльбрус, и имел те же проблемы. В частности, на такой архитектуре, с несколькими параллельными инструкциями в одном командном слове, трудно добиться хороших бенчмарк на программах общего назначения. Эти параллельные инструкции соединяет в одно слово компилятор, и ему трудно предсказать задержки при работе с памятью, которые при промахе кэша могут быть десятки и даже пару сотен тактов (при многоуровневом кэше, особенно с многоядерностью). Обычный суперскалярный процессор в таком случае просто запускает следующие независимые от доступа к памяти инструкции (см. алгоритм Томасуло), а вот VLIW процессору приходится простаивать.

VLIW процессоры хороши чтобы просчитывать какую-нибудь физику, с одновременной обработкой массивов данных, но запускать на нем браузеры или Микрософт Офис - это наблюдать посредственную производительность. Но в 1997 году, после анонса Itanium-а и до его выхода в 2001 - компании об этом не то что не знали, но думали что каток хайпа от Интела повторит каток хайпа от Микрософта по поводу Windows, и Итаниум будет везде.

Об этом есть известная статья Джона Дворака "Как Итаниум убил компьютерную индустрию".

Другое замечание: Сергея Сафонова в видео смешивает архитектуру (систему команд, видимую программисту сторону процессора) и микроархитектуру (аппаратную организацию, устройство конвейера и блоков процессорного ядра). RISC-архитектура способствует эффективной конвейерной микроархитектуре, но это не одно и то же. См. мою заметку "Что означает информация в заметке Коммерсанта «Британия морозит «Байкал»"

И где можно было бы дополнить:

  1. Мода на RISC возникла не просто так, а в результате анализа использования инструкций в пользовательских программах. Такое масштабное исследование провела группа профессора Джона Хеннесси в Стенфорде в 1978-1980 году.

  2. История RISC-процессоров в 1980-е тесно переплетается с историей кэшей. Они стали популярны именно в 1980-е потому что скорость арифметических операций росла в те годы гораздо быстрее, чем скорость доступа к основной памяти, DRAM.

    Если раньше, в 1960-е годы, арифметическая операция занимала больше, чем чтение или запись из памяти, то сейчас за одну транзакцию к памяти при промахе кэша можно выполнить десятки сложений. Поэтому стало рости и количество регистров (в x86 их изначально было меньше, а 6502 в ранних Apple - вообще аккумуляторные процессоры) и стал требоваться кэш, а иначе конвейер бы простаивал.

  3. На то, что индустрия отвернулась от MIPS и повернулась к ARM, повлияла и история о том, как MIPS стал судить стартап Lexra. Lexra типа нарушала патент на инструкции с невыравненным доступом к памяти. Процесс был высосан из пальца, но MIPS затянул разбирательство и у стартапа кончились деньги на юристов.

Tags:
Total votes 12: ↑12 and ↓0+18
Comments10

Как разводят венчурных капиталистов на бабки по поводу процессоров

Когда в СМИ публикуют статью про новый революционный процессор, но в статье нет бенчмарок, тут все понятно: статью можно игнорировать, это просто мусорный набор символов на экране. А если бенчмарки есть? Тут тоже не все так просто. Лет 10 назад был стартап, который показывал венчурным капиталистам слайды, что их революционно гибкий процессор (который динамически выделял потоки) по тактам в 3 раза быстрее чем старшее ядро ARM. Измерение было с помощью симуляции на уровне регистровых передач и в качестве бенчмарки была то ли Dhrystone, то ли CoreMark/MHz. Но они "забыли" указать на слайдах, что если синтезировать их процессорное ядро c библиотекой ASIC на том же техпроцессе, на котором и ядро ARM, против которого они конкурируют - то статический анализ тайминга покажет, что максимальная тактовая частота, которую они могут использовать - втрое меньше, чем у ARM. То есть втрое лучше по тактам умножаем на втрое хуже по частоте = никакого улучшения. Об этом факте я случайно услышал на парти - человек сказал цифру и я сложил два плюс два, то бишь умножил 3 на 1/3.

Также замечу что развод на бабки VC ничуть не менее аморален, чем развод на бабки пенсионеров по телефону, так как в фонды VC вкладывают в том числе и частные пенсионные фонды.

Tags:
Total votes 12: ↑11 and ↓1+13
Comments11

Только что вышел первый коммерческий маршрут синтеза для FPGA на Apple Mac - его надо срочно протестировать! Прошу всех у кого есть Apple Mac и плата от Gowin - скачать Gowin V1.9.10.03 Education (Mac) и клонировать с гитхаба примеры BGM и попробовать запустить их вместе. Для этого возможно понадобиться модифицировать bash скрипты в директории scripts, но если кто-нибудь это сделает и пришлет pull request, это будет здорово - можно будет сообщить и Gowin-у, и использовать для Школы Синтеза.

К нам на митапы в Hacker Dojo в Маунтин-Вью, Калифорния, часто приходят студенты с маковскими ноутбуками и на вопрос "как запустить софт для разработки на Маке", мне приходилось отвечать: "на Маке пока работает только симуляция с Icarus Verilog, а также нестабильный открытый софт для синтеза на основе OSS CAD Suite, с которым нужно обходить разные проблемы, так что пока купите на eBay старый x86 компьютер, поставьте на него Линукс и упражняйтесь на нем". Но с новым софтом от Gowin картина радикально меняется!

Замечу, что синтез у Gowin гораздо быстрее чем у Xilinx и Altera, а платы - дешевле и достаточные. Поэтому Gowin может реально отобрать кусок образовательного рынка - Xilinx/AMD и Intel/Altera просто слишком медленно шевелятся.

Tags:
Total votes 6: ↑5 and ↓1+6
Comments8

Большинство университетских профессоров в мире - ленивые. Как выдумали в 1970-е годы преподавать дизайн конечных автоматов примером FSM для светофора (Traffic Light Controller FSM), так и тянут эту бодягу и по 21-му веку. При том, что современные дизайнеры чипов не светофоры конструируют, а ускорители тренировки нейросетей.

Короче мы на Школе Синтеза Цифровых Схем решили преломить эту дурную традицию (которая встречается от Южной Америки до Средней Азии и Филиппин, с провинциальными вузами в Штатах включительно) и ввести в преподавание современный хардкор. То есть сделать домашку с конструированием FSM для управления блоками FPU выдранными из современного реального открытого RISC-V процессора.

По сложности начинается не сложнее светофора, зато куда ближе к реальности и можно сделать миллион вариантов домашек и экзаменов, чтобы студенты друг у друга не списывали один и тот же светофор.

Пример домашки: сконструировать FSM (а потом и конвейер) для вычисления такого-то ряда Маклорена (для синуса, экспоненты итд), имея в наличии N блоков умножения, M сложения и R деления с плавающей точкой - с разными латентностями.

При обсуждении такой домашки возник вопрос нужно ли для операций с плавающей точкой устанавливать флаг error для нечисел и бесконечностей. Конечно нужно, потому что это удобный повод рассказать про концепцию NaN и Infinity. Полез в википедию и в шоке обнаружил, что статья IEEE_754 на русском отсутствует, хотя есть на украинском. Это непорядок, нужно срочно поправить!

Tags:
Total votes 15: ↑13 and ↓2+16
Comments7

Information

Rating
419-th
Location
Sunnyvale, California, США
Date of birth
Registered
Activity