Валерий Черепенников
Made at Intel: Сделано в Intel
В настоящее время Валерий является советником губернатора по развитию ИТ-сектора и отвечает за ИТ-кампус «Неймарк». Ведёт телеграм-канал «Китайский русский» (t.me/russiachinese).
© Издательство «РуДа», 2024
© В. В. Черепенников, 2024
* * *
Валерий Черепенников представляет вашему вниманию честный рассказ о своей более чем двадцатилетней карьере в «Интел», ведущей мировой корпорации в области микроэлектроники. Рекомендую эту книгу всем, кто интересуется разработкой процессоров и соответствующего системного программного обеспечения для них.
Директор Института системного программирования им. В. П. Иванникова РАН академик РАН А. И. Аветисян
Пролог
Время стирает из памяти события, детали, лица. Хорошая новость в том, что плохое мы забываем быстрее, чем хорошее. Плохая в том, что и хорошее мы забываем тоже.
Я рад, что начал писать эту книгу спустя два года после ухода из Intel. Мне хотелось рассказать об уникальной культуре компании и отдать дань уважения людям, у которых я многому научился.
Я еще больше рад, что сумел эту книжку закончить. Желание забить и забросить возникало не однажды и не дважды. Но каждый раз мне удавалось со своей ленью как-то договориться. И всё же с каждой следующей главой становилось все сложнее вытаскивать из своей памяти новые факты и детали. Сейчас мне кажется, что я осветил все значимые истории, которые подарила мне долгая карьера в «Интел», и настало время остановиться.
Эта книжка получилась не совсем такой, как я задумывал ее изначально. И за это я благодарен читателям «Хабра». Поначалу мне думалось, что это будет набор веселых историй, слегка приправленных техническими деталями и философскими рассуждениями. Но потом я заметил, что когда пытался «натягивать на глобус» какие-то концепции – реакция становилась немного унылой. Когда же просто и бесхитростно рассказывал истории из жизни – отклик превосходил мои ожидания. Поэтому я постепенно приходил к всё более натуралистичному стилю изложения. В итоге получилось, что теперь я сам затрудняюсь определить жанровую принадлежность своего творения.
Это точно не набор «корпоративных баек» – в последних главах книжки весёлого очень немного. Тем не менее, это – слово, которое из песни не выкинешь.
Это тем более не «пасквиль бывшего сотрудника». «Интел» дал мне очень многое в жизни, и я всегда буду его любить. Да, косяков и граблей было предостаточно, но по прошествии времени я старался вспоминать о них с улыбкой.
Это точно не автобиография. В книжке я гораздо чаще появляюсь в роли наблюдателя, нежели действующего лица. Возможно, я когда-нибудь за автобиографию и возьмусь, но будем надеяться, что это случится ещё очень и очень нескоро.
И это не трафаретная «бизнес-литература», которая на 90 % состоит из разбора назидательных кейсов с готовыми ответами. Меньше всего мне хотелось заниматься нравоучениями типа «Алеша пошел налево и потерял коня. Добрыня пошел направо и потерял башню (то бишь ладью). А Илья остался на месте и ничего не потерял. Потому что понимал главный принцип: если в большой корпорации можно ничего не делать, то в ней и нужно ничего не делать». Я полагал своих читателей достаточно интеллектуальными и любознательными, чтобы самим во всём разобраться. Свою же задачу видел в том, чтобы погрузить их в проблемную ситуацию и обрисовать действия персонажей. А выводы пусть каждый делает свои собственные.
Наверно, самое близкое определение – это корпоративное бытописание. Мне хотелось донести до вас сложившуюся в light blue уникальную атмосферу. И самый близкий аналог, который я нашел, это книга «Покер лжецов», повествующая о становлении легендарных Salomon Brothers.
Надеюсь, моя история, охватывающая более чем 20-летний период работы в одной из ведущих технологических коропораций мира, покажется вам не менее занимательной.
Architecture and religion[1]
Я подустал от мрачных текстов и вспомнил о своей давней мечте. За 20 с хвостиком лет работы в «Интел» у меня развеселых историй накопилось на целую книгу. Хотелось в ретроспективе посмотреть на некоторые события, участником которых мне довелось быть. И еще хотелось отдать дань уважения компании и людям, с которыми мне посчастливилось работать. Я уже даже название придумал – Made at Intel. Понятно, что пока я был внутри конторы, речь о публикации этих баек идти не могла. Я сам подшучивал, что для публикации нужно правильно выбрать время. В смысле, сначала уволиться, а потом публиковать, а не быть уволенным вследствие публикации. Однако примерно два года назад я «Интел» покинул, и, казалось бы, меня уже ничего не сдерживало. Но тут как всегда – то перо поломается, то струна порвется, то еще какая беда приключится. К тому же на то, чтобы писать книжку – это же решимости набраться надо… И вот вчера я решил, что большое надо начинать с малого. Буду писать по главке. Так мало-помалу и наберется.
Итак, сегодня вашему вниманию представляется первая глава, в которой эволюция архитектур Intel рассматривается с точки зрения… истории религиозных течений. Да-да, не удивляйтесь, архитектура вычислительных устройств – это одна из самых религиозных вещей. Не думайте, что все решения по Instruction Set Architecture[2] принимаются исключительно на основе анализа данных – это совсем не так. Скорее похоже на средневековое государство – тут есть немного бизнеса, побольше политики и очень много религии. Все просто – почти любой эксперимент в этой области растягивается на годы и обходится в миллиарды долларов. Хуже всего, что в процессе дизайна можно давать лишь приблизительные оценки ключевых характеристик – частоты, производительности, энергопотребления, температурной карты. То, как все оно будет на самом деле, становится понятным уже только тогда, когда чип выходит из печки. Да, сейчас в этой области уже накоплен определенный опыт, и наши оценки становятся несколько точнее, но и только. А 20 лет назад этих знаний было куда меньше. И пионеры, подобные «Интел», двигались в темноте на собственный страх и риск. Разумеется, в таких условиях на первый план выходит, кто во что ВЕРИТ. Ну да – еще кто лучше говорить умеет. Лучшие архитекторы приходят из школ с углубленным изучением богословия.
Именно поэтому история эволюция развития архитектурной мысли так странно напоминает историю религий. Разница только в масштабе времени – то, что в религии формируется веками, в дизайне чипов складывается за считанные годы, а иногда даже месяцы. Взять хотя бы школу Бориса Арташесовича Бабаяна (наверно, самую древнюю из известных мне архитектурных школ). Мне трудно впрямую причислить себя к его ученикам, но то, сколько мы общались и сколько идей я от него набрался, наверно, позволяет так говорить. Так вот, там на протяжении 60 лет было все: расколы (наподобие католической и лютеранской церкви), формирование новых течений и, разумеется, идейные конфликты. Существенную роль играл фактор времени. Отколовшиеся недавно признавались «последователями», а долго упорствующие в своих «заблуждениях» – прямыми «еретиками». Много всякого происходило за 60 лет, и я видел из этого лишь малую толику. Поэтому меня подмывает нарисовать полное «генеалогическое древо» этой школы. Когда поеду навестить Арташесовича в следующий раз, надо будет этим заняться. Но давайте вернемся к «Интел». В этой главе я расскажу о трех культах, которые имели все признаки религиозных и формировали историю компании.
Гонка гигагерц
Это течение сформировалось в конце XX – начале XXI века. В основе лежала, в общем-то, простая мысль – при повышении тактовой частоты производительность приложений при прочих равных растет. Не обязательно линейно (обмены с памятью никто не отменял), но растет. Заменяя процессор на новый, пользователь получает ускорение «из коробки». Без всяких мучительных манипуляций с исходным кодом ради распараллеливания и векторизации. Тенденция эта началась еще во времена Pentium III, но полностью развилась уже в Pentium IV. Все было бы прекрасно, но вот только загвоздка в этом самом «при прочих равных». Очевидно, что чем короче такт, тем больше их потребуется для выполнения данной инструкции. Ведь x86 – это все же CISC. И «Интел» задумал поменять архитектуру в угоду частоте. Так родился NetBurst c его гиперпайплайном. Идея в том, чтобы разбить команду на микроинструкции (такой RISC внутри CISC) и запихивать их в огромной длины пайплайн. В Willamette он составлял 20 стадий, а в Prescott – 31, и это не считая декодирования. Суть в том, что эти микроинструкции можно выполнять на гораздо большей частоте, чем настоящие x86 команды. И это неплохо работало на прямых, как палка, кодах и прогретых кэшах. Но стоило поймать промах в кэш, и в пайплайне образовывался баббл (пузырек) – молотилка работала вхолостую. Еще хуже дело обстояло при неправильном предсказании ветвлений. Они не часто (буфер предсказания ветвлений BTB выдавал 94-процентную точность предсказаний), но все же случались. В этом случае цена была астрономической – только для очистки конвейера (flush) могло потребоваться до 100 тактов. А ведь надо было еще снова его загрузить… Тем не менее «Интел» твердо уверовал в парадигму и в начале 2000-x (если мне память не изменяет) провел публичный эксперимент, где P4 работал на частоте около 8 гиг и охлаждался жидким азотом. Это, конечно, вдохновило оверклокеров и заставило серьезно задуматься всех остальных. Ибо гигагерцы – оно, конечно, круто, но жидкий азот – это все-таки жидкий азот…