Made at Intel: Сделано в Intel
Валерий Черепенников
Эта книга приоткроет дверь в закрытый мир ведущих транснациональных IT-корпораций. Её автор – Валерий Черепенников – проработал на руководящих должностях более 25 лет. Занимал посты директора «Интел» по исследованиям и разработкам в России (2013–2015) и вице-президента компании Huawei (2020–2023).
Валерий Черепенников
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 гиг и охлаждался жидким азотом. Это, конечно, вдохновило оверклокеров и заставило серьезно задуматься всех остальных. Ибо гигагерцы – оно, конечно, круто, но жидкий азот – это все-таки жидкий азот…
«Самосожжение» Боба Колвелла
Кульминация, однако, случилась еще раньше. Боб Колвелл (один из самых уважаемых мной дизайнеров) проработал в «Интел» всего пять лет (1995–2000), но сумел оставить в истории компании яркий след. Он был одним из ведущих архитекторов линейки Pentium и, наверно, раньше всех осознал, что «гонка гигагерц» – тупиковый путь. Однако беда была в том, что тогда частота уже превратилась из чисто физического (или инженерного) понятия в предмет новой религии. И обычными средствами набирающую ход лавину было уже не остановить…
В одно прекрасное утро Бобу Колвеллу позвонил тогдашний CEO «Интел» Крейг Баррет. С Крейгом я встречался лично раз пять (больше только с нынешним CEO Пэтом Гелсингером), и он всегда производил впечатление человека исключительно здравомыслящего. Но, видимо, в том момент всеобщий экстаз захватил и его.
– Боб, дружище, нельзя ли поднять частоту еще на 20 %? – «поинтересовался» Крейг.
– Это очень сложно, – ответил Боб. – И более того, контрпродуктивно.
Но тем не менее частота была поднята.
Следующий звонок был таким:
– Боб, дорогой. Нельзя ли добавить еще процентов 15?
– Это почти невозможно и бессмысленно.
– Ну постарайтесь, вы же настоящие гении…
И последний.
– Боб, золотой мой, кровь из носа нужно еще 10 %.
– I deliberately do not agree[3 - Я категорически не согласен (англ.).], – ответил Боб, повесил трубку и написал заявление «по собственному желанию». Позже он описал это в своей замечательной книге The Pentium Chronicles: The People, Passion, and Politics Behind Intel’s Landmark Chips[4 - Хроники Pentium: люди, страсть и политика, стоящие за знаковыми чипами Intel (англ.).].
Дальнейшее развитие
Но «Интел» не был бы «Интелом», если бы так легко отказывался от своих убеждений. NetBurst вышел на рынок и столкнулся там с платформой AMD Opteron, которая мало того что имела существенно более короткий конвейер, так еще и обладала встроенным контроллером памяти. В то время как интеловские платформы все еще использовали технологию North Bridge. На меня самое большое впечатление произвел следующий эпизод. Мы как-то попробовали запустить Linpack на процессоре Irwindale. И не смогли получить более 70 % эффективности. Обычно неприхотливый HPL уперся… в memory bandwidth. Возможно, мы что-то сделали не так, но шок был настолько велик, что мы очень быстро это занятие бросили.
Реальность рынка быстро оказала свое отрезвляющее воздействие. Intel начал стремительно терять долю рынку в пользу AMD. Однако ситуация, как ни странно, имела и положительные моменты для развития софтовой организации в «Интел» (и российской в частности). Контора осознала, что программатуру можно использовать для того чтобы прикрыть недостатки архитектуры. Нас бросили «на фронт», чтобы «распрямлять» коды (уменьшать количество ветвлений) и по возможности уменьшать зависимость от memory bandwidth. В «Интел» наступил (второй?) «золотой век софта». Затем в 2005 году, как глоток свежего воздуха, появился Merom, разработанный в Israel Design Center (IDC). Архитектура Core имела существенно более короткий конвейер и скорее являлась развитием идей P3. Но окончательно «смутное время» закончилось с выходом Nehalem – серверного чипа с архитектурой Core и интегрированным контроллером памяти. Империя встала с колен и нанесла сокрушительный ответный удар.
Architecture and religion – 2
Linpack как важнейшее из искусств
Второй важнейший «культ», который определял развитие серверной архитектуры на протяжении десятилетий, – это «сакрализация» Linpack. Сам бенчмарк представлен Джеком Донгаррой аж в 1979 году. Но культовым статусом своим он обязан усилиям маркетологов из многих IT-компаний (Intel, AMD, IBM, Nvidia, Fujitsu и т. д.). Linpack имеет массу неоспоримых достоинств.
• Это всего лишь ОДИН тест, в отличие от, скажем, SPEC CPU, где их 40 с хвостиком.
• К тому же (в отличие от SPEC) он совершенно бесплатный.
• Очень легко объяснить, что Linpack делает. Он решает систему линейных алгебраических уравнений с числами двойной точности. Используется метод (P) LU-разложения (Гаусса) с выбором ведущего элемента.
• В качестве результата Linpack выдает ОДНО число – измеренную производительность системы в (гига-, тера-, пета-, экза-) флопах. На основании Linpack строится мировой рейтинг суперкомпьютеров TOP-500 и российский TOP-50. Так же вычисляют эффективность (искушенные люди обращают на нее внимание) – как отношение измеренной производительности к пиковой. Правда, в последнее время само понятие эффективности является несколько «размытым» из-за того, что в процессе исполнения теста тактовая частота может «плавать».