NV Inside


Подробнейший обзор новых членов семейства GeForce FX, основанных на NV31 и NV34:

  • GeForce FX 5200
  • GeForce FX 5200 Ultra
  • GeForce FX 5600 Ultra

… уже в процессе создания, ну а пока мы надеемся развлечь вас виртуальным путешествием в недра головного калифорнийского офиса компании NVIDIA. Штаб квартира и она же основной офис фирмы расположена в Santa Clara, сравнительно недалеко (15-20 минут на машине при условии отсутствия трафика) от признанного делового и культурного центра долины — San Jose.

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

Итак, мы в главном холле, где, прежде чем вас пропустят внутрь, необходимо пройти процесс регистрации (совсем как в приличной операционной системе или в Windows XP):

Прямо перед вами инсайдер, который и будет вашим гидом в этом виртуальном путешествии — то есть я :-) Чуть дальше — большой ЖК монитор, на котором всегда запущено специально приложение (Sign In) для регистрации посетителей. Каждый посетитель вводит свое имя, фирму, и лицо к которому он пришел, а также принимает некое лицензионное соглашение. Возникает четкое ощущение, что вы попали не столько в хорошо известную железную контору, сколько в некий программный продукт :-)

Впрочем, безопасность и еще раз безопасность. Вам распечатывают одноразовый бейджик, который можно, например, наклеить на рубашку. В этом же холле расположен некий «шкаф почета» — в нем расставлены различные награды от партнеров NVIDIA и прессы. Но это попса — мы же серьезные парни, не будем тратить время на разглядывание наград и прочих шариков фонариков, а отправимся в святая святых — внутренние лаборатории и помещения NVIDIA.

Но, сперва, несколько слов о самом здании изнутри. Целостный, ненавязчивый и в то же время заметный дизайн, приглушенное освещение, отсутствие шума:

Красивая отделка полов, и удивительно напоминающие что-то неуловимо знакомое широкие лестницы:

Черные, с желтой окантовкой и четкие круглые металлические пупырышки на ступеньках. Ага, да это же первый Unreal — один из космических кораблей имел такую отделку полов пандусов и лестниц. Забавно!

Впрочем, лестницы это не главная достопримечательность офиса. Есть еще кафе, позже мы сходим туда пообедать. А пока, прошли по коридору, поднялись, и хватит — теперь вперед — в серверную комнату:

Итак, перед нами святая святых. Можно сказать сердце компании. Случись что в этой комнате, и вся работа фирмы пойдет насмарку. Так что аккуратнее — кто там зацепился сумкой за кабели? Помещение велико, в нем установлено 5 рядов стоек, длиной более 25 метров, и еще остается много свободного места. Все шумит, гудит (говорить нужно повысив голос) и дует ощутимыми потоками воздуха, в том числе и на вас:

Так, вы опять задели за провод?

А вот и Джозеф («Server Guy») — самый главный отец и воспитатель многочисленных кластеров, дисковых массивов и просто серверов NVIDIA:

Рядышком с ним — различные вспомогательные серверы, отвечающие за почту, внутренние базы данных корпорации, не имеющие прямого отношения к разработке чипов, распределенные баг-листы и прочий инструментарий, используемый для повседневных нужд рабочего процесса внутри компании. Отметим, что этих самых «прочих нужд» набралось не так уж и мало:

Вот тут, например, как раз лежат разные служебные БД и рабочие файлы. Впечатляет? А шерстяной покров из проводов слева?

Вот в этих красных «коробочках» и поселился хорошо нам знакомый:

NVIDIA.COM. Впрочем, реальный IP пришлось замазать черным (в целях безопасности). Как вы, наверное, уже заметили, в моде не только гигабитный Ethernet, но и оптические соединения. Даже физическая коммутация всего этого добра представляет собой непростую задачу

Я уже не говорю о логической защите и маршрутизации. Для этой цели в основном используются продукты Cisco, средней и большой мощности.

А основные (базовые) магистрали, соединяющие сервера и массивы накопителей (файл серверов) построены на оптике. Итак, дорогие экскурсанты, теперь, когда вы глубоко прониклись мощью всего этого хозяйства, вам будет интересно узнать, для чего и как оно используется.

Фактически разработка чипа происходит следующим образом.

Вначале ведутся предварительные научные, алгоритмические и архитектурные исследования с целью создания новых алгоритмов, возможностей и подходов к реализации. Как и любые научные исследования, они происходят непрерывно, параллельно созданию конкретных продуктов, общие идеи и подходы могут разделяться между несколькими проектами. Многие сотрудники NVIDIA занимаются исследованиями помимо своей основной деятельности, связанной с разработкой и отладкой конкретных продуктов, кроме того, много исследований по аппаратной компьютерной графике реального времени проводится на стороне, например, в расположенном неподалеку Стенфорде.

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

Примеры наиболее распространенных языков (т.н. HDL языков) такого плана — Verilog и VHDL.

Процесс полной разработки программного описания чипа занимает 4-5 месяцев (может и менее) в зависимости от степени использования уже готового кода из предыдущих проектов.

Затем выполняется отладка и тестирование этого описания на программных симуляторах, прогоняющих HDL-программы. Процесс очень вычислительно емкий и долгий, большинство вычислительных ресурсов уходит именно на него. Отладка происходит на разных стадиях, как поблочно, так и целиком, блочная выполняется в основном параллельно предыдущему этапу. Сами по себе, задачи симуляции HDL могут быть очень хорошо распараллелены, и, в общем и целом занимают не так много времени — одна задача выполняется, как правило, несколько часов, на худой конец, сутки. Однако их число столь велико, что необходимы кластеры из тысяч процессоров для того, чтобы обеспечить приемлемое время реакции на запросы разработчиков и, следовательно, приемлемое время выхода чипов.

Есть два уровня эмуляции — на уровне интерпретации исходного описания и на уровне генерации логической топологии (т.е. представления на уровне транзисторов и связей между ними) для определяющей архитектуру чипа программы. Можно назвать это «компиляцией на базовую логику».

Для работы с задачами компиляции и симуляции HDL используется огромный LINUX-кластер на базе x86 серверов:


вид спереди


вид сзади


живи свободно или умри — не больше и не меньше :-)

Конкретно эти серверы — в основной массе — двухпроцессорные Pentium IIIs решения, впрочем, ранее они работали на Celeron, но затем процессоры были сменены. Часть серверов — однопроцессорные. Еще пол-года назад Pentium IIIs обеспечивал оптимальное соотношение цена — производительность для HDL-задач NVIDIA, однако сейчас ситуация поменялась. Но, об этом чуть далее.

Когда разработка и отладка HDL-модели завершены, происходит финальная компиляция и оптимизация логической топологии.

Затем происходит тестирование полученной логической модели на аппаратных логических эмуляторах с гибко программируемыми связями, например, NVIDIA использует для этой цели красненькие тумбочки фирмы IKOS — достаточно известные в узких кругах FPGA (Field Programmable Gate Array) для целей аппаратной эмуляции чипов. Цена таких эмуляторов достаточно умеренна — порядка десяти тысяч долларов, и гораздо выгоднее отладить все, что только можно, на подобных симуляторах, а не на реальных чипах, один процесс производства которых требует почти миллиона начальных вкладов и месяца ожиданий результатов. Симуляторы могут быть подсоединены к реальным компьютерам, на которых исполняются реальные приложения, пусть и со скоростью в тысячи раз медленнее полноценных GPU. Таким образом, можно худо-бедно проверять чипы на реальных программах еще до их физического создания.

Следующий этап — очень важный — разводка физической топологии чипа. Здесь требуется долго (десятки дней) и массивно (огромные объемы оперативной памяти, настолько объемные, что обязательна ее 64-битная адресация!) перебирать и оптимизировать различные топологические структуры с учетом жестких правил, определяемых тактовой частотой и разными технологическими нормами чипа. Т.к. работа ведется над большими зонами чипа в целом, распараллеливать эту задачу на недорогой кластер из простых вычислителей тяжело, практически невозможно. Еще один специфический аспект — надежность. Ведь кластер из большого числа х86 процессоров работает без сбоев некое характерное время (несколько дней), которое недостаточно для задач физической разводки топологии чипа.

Ну и после разводки физической топологии происходит тот самый tape out — передача информации на фабрику, где и производятся шаблоны, а затем выращиваются первые чипы с их использованием.

Итак, NVIDIA использует для этой ответственной цели очень дорогие 64-битные вычислительные платформы Sun:

Каждый такой «холодильник» двухметрового роста (всего 11) существует сам по себе, стоит миллион долларов, содержит от 32 до 96 процессоров и 192 гигабайта памяти (каждый). NVIDIA давно ищет замену столь дорогим вообще, и в эксплуатации в частности, решениям. В том числе присматривается к кластерам на основе Itanium — Джозеф с нетерпением ожидал появления первых решений от IBM на основе Maddison варианта Itanium 2. Предварительные тесты на уже доступных, но менее производительных вариантах Itanium 2 показали, что кластеры из сравнительно недорогих двух- и четырехпроцессорных серверов смогут выгодно использоваться для HDL-задач, а более многопроцессорные решения, возможно, смогут наконец заменить монстроидальные серверы Sun. Вопрос в надежности (характерном времени до первого сбоя) и объеме памяти с быстрой 64-битной адресацией.

Вычислительная фабрика очень важна для NVIDIA. Эти компьютеры, шутливо говоря, и придумывают чипы день и ночь вместо сотрудников, которые получают зарплату за то, что они вначале делают ошибки, а затем их ищут :-)

Поэтому развитие вычислительных мощностей является одной из приоритетных задач. NVIDIA постоянно покупает небольшие партии недорогих серверов на x86- или Sun-платформе, проверяя их в деле на тех или иных задачах, и решая, стоит ли закупать те или иные модели в бОльших количествах.

Отдельный вопрос — питание и охлаждение этой прорвы силиконовых грелок. Вы только посмотрите — сбоку примостились огромные гудящие шкафы с явно числовым управлением:

Это резервные источники питания. Вылет пробок — нередкое дело, когда имеешь в наличии тысячи одновременно работающих процессоров. Случайно потерять данные месячной симуляции никому не хочется.

Молодой человек — что вы там трогаете руками? Господи, зачем вы нажали красную кнопку???

Постепенно заполняется и вторая серверная комната, которая, что интересно, расположена в другом здании. И именно по причине проблем с питанием и нормативами на энергопотребление. Давайте пройдем в соседнее здание через двор,

полюбовавшись на недавно посаженые сакуры-в-цвету (весна!)

Все мило беседуют, греясь на солнышке, но один странный молодой человек

видимо читает какую-то сопутствующую документацию

[ Вторая страница репортажа ]





9 марта 2003 Г.

NV Inside — - NVIDIA

NV Inside


GeForce FX, NV31 NV34:

  • GeForce FX 5200
  • GeForce FX 5200 Ultra
  • GeForce FX 5600 Ultra

… , NVIDIA. Santa Clara, (15-20 ) — San Jose.

( , ) , .

, , , , ( Windows XP):

, — :-) — , (Sign In) . , , , . , , :-)

, . , , , . « » — NVIDIA . — , , — NVIDIA.

, , . , , , :

, - :

, . , Unreal — . !

, . , . , , , — — :

, . . , . — ? , 5 , 25 , . , ( ) , :

, ?

(«Server Guy») — , NVIDIA:

— , , , , - , . , « » :

, , . ? ?

«» :

NVIDIA.COM. , IP ( ). , , , Ethernet, .

. Cisco, .

() , ( ) . , , , , , .

.

, , . , , , . NVIDIA , , , , , .

, . , , (), . , ( , , ) .

(.. HDL ) — Verilog VHDL.

4-5 ( ) .

, HDL-. , . , , , . , HDL , , — , , , , . , , , , .

— (.. ) . « ».

HDL LINUX- x86 :








— :-)

— — Pentium IIIs , , Celeron, . — . - Pentium IIIs — HDL- NVIDIA, . , .

HDL- , .

, , NVIDIA IKOS — FPGA (Field Programmable Gate Array) . — , , , , , . , , GPU. , - .

— — . ( ) ( , , 64- !) , . .. , , . — . 86 ( ), .

tape out — , , .

, NVIDIA 64- Sun:

«» ( 11) , , 32 96 192 (). NVIDIA , , . Itanium — IBM Maddison Itanium 2. , Itanium 2 , - HDL-, , , Sun. ( ) 64- .

NVIDIA. , , , , , :-)

. NVIDIA x86- Sun-, , , .

— . — :

. — , . .

— ? , ???

, , , . . ,

-- (!)

, ,

-

[ ]