|
|
Материал опубликован - 05/03/2001 Intel выиграла первый раунд в битве за 3D-олимп. Их сопроцессор оказался мощнее. Теперь AMD контратакует с технологией 3DNow! предназначенной для замены сопроцессора в тяжелых 3D - приложениях. Первые же испытания показали превосходство 300-мегагерцового AMD K6-2 над Pentium II-400 Покупатели Pentium II - 400 оказались в шоке: они переплачивали в три раза за аналогичное быстродействие. Однако позже стало ясно, что только одна игра, Quake II, дает такое превосходство. В остальных играх К6-2 300 находился на уровне Pentium II 300 - 333. Pentium II -400 оставался вне конкуренции. 3DNow! уже присутствует на рынке около года. За это время в его адрес прозвучало много восторгов и критики. Однако, эта технология была признана лучшей в 1998 году. 3DNow! не имеет большого преимущества над конвейерным сопроцессором в сегодняшних играх из-за слабой поддержки.Даже самые современные 3D-игры используют 3DNow! в очень малой степени. Не стоит забывать, что не всем играм требуются интенсивные вычисления. Стратегии очень мало зависят от сопроцессора. Теперь понятно, почему 1200MFPS K6-2 300 не опережает 400MFPS Pentium II 400 и даже 300MFPS Pentium II 300? Из-за отсутствия оптимизации в программах! Как можно говорить об оптимизации игры под 3DNow! если она изначально оптимизирована под Intel FPU? Некоторые утверждают, что Quake не корректно использовать для сравнения, т.к. он оптимизирован для 3DNow! Это не так! Он оптимизирован одновременно для AMD и Intel. И он к сожалению является исключением. 3D-игры в основном состоят из двух частей: - Логика игры. Она описыват законы игрового мира, такие как гравитация, тени,
освещение, попадание пуль, взрывы. Это требует интенсивных вычислений. Теперь рассмотрим работу 3DNow! в графических API. Нынешние игры просто не позволяют раскрыть потенциал этой технологии. Если вы не согласны, то запустите вашу самую любимую игру. Вы заметите, что ваши враги выглядят угловатыми и нереальными. Это происходит потому, что для их отображения используется очень маленькое количество полигонов. В играх следующего поколения этот недостаток будет исправлен и вы увидете гладкие, реалистичные тела и лица противников. Большее количество полигонов подразумевает увеличение однообразных вычислений над большими массивами данных. А это является идеальным случаем для архитектуры SIMD, на которой построен блок 3DNow! В этом случае блок 3DNow! будет нуждаться в большом количестве кеша для своевременного получения данных, иначе преимущество будет не так велико. Блок FPU наоборот не будет успевать обрабатывать данные и размер кеша не будет иметь значения. Это приводит к выводу, что К6-3 с трехуровневой схемой кеша, будет генерировать просто феноменальное количество полигонов и долго будет вне конкуренции. Реализация AGP тоже оказывает влияние на производительность в играх. AGP - детище Intel и поэтому именно ее реализация на сегодняшний день является лучшей. Чипсеты от VIA и ALI как для Super7, так и для P II уступают интеловским. Это создает проблемы с новыми видеокартами и ограничивает скорость видеосистем. НО! Это не является проблемой! Размер видеопамяти, установленной на современных видеокартах, превышает 16Мб и влияние AGP не проявляется. Все текстуры умещаются в локальной памяти видеокарты. Теперь определим пиковую производительность 3DNow! Блок 3DNow! содержит два конвейерных исполнительных модуля. Все 3DNow! инструкции выполняются за 2 такта. Одна инструкция обрабатывает сразу две переменных. Получаем 1.2GFLOPS для К6-2 300. Это в 4 раза быстрее конвейерного сопроцессора. Но в реальных программах этот предел не будет достигнут. Так же как и для Pentium II. Но вот только Pentium II 300 гораздо ближе к пиковым показателям в 300MFLOPS, чем К6-2 к своим 1200MFLOPS. Реальная производительность 3DNow! составляет 600-700MFLOPS. По результатам тестов блок 3DNow! превосходит FPU-K6 в 4 раза и FPU-Pentium II в 2-2.5 раза на операциях с одинарной точностью. Так почему же 3DNow! так трудно достичь пикового быстродействия? Почему трудно создать оптимизирующий компилятор(нынешние компиляторы используют 3DNow!, но не оптимизируют код) и работать вручную. - Блок 3DNow! состоит из двух конвейеров, подключенных к одному сдвоенному
исполнительному блоку. Первая часть этого блока выполняет инструкции сложения,
вычитания и т.п. Вторая часть выполняет остальные инструкции, такие как умножение.
Обе части работают одновременно. Таким образом могут выполняться одновременно
две инструкции сложения и две умножения, что дает 4FLOPS при частоте 1Гц. Это
единственный способ достичь пиковой производительности. Если в коде программы
подряд идут 4 сложения и 4 умножения, то производительность падает вдвое из-за
того, что одна часть блока 3DNow! не может выполнять команды второй части. Если
сравнить с конвейерным FPU: 2 сложения и 2 умножения выполнятся со скоростью
1FLOPS, 4 сложения и 4 умножения выполнятся также со скоростью 1FLOPS. Т.е.
оптимизация для 3DNow! сложнее, чем для конвейерного FPU и следовательно пиковая
производительность менее достижима. Требуются последовательности двух одинаковых
команд. Именно двух! Производительность K6-2 == 50% * реальной производительности 3dnow! + 50% * реальной производительности FPU == 0.5* (2 *RWFP) + 0.5 * (0.5 * RWFP) == 1.25 RWFP Исходя из этого расчета К6-2 300 должен работать как Pentium II 375 при хорошей оптимизации. Конечно не учитывается влияние кеша второго уровня, работающего в разных условиях(100 против 187Мгц). Выводы. Технология 3DNow! позволяет достичь двухкратного превосходства над конвейерным сопроцессором Pentium II. В реальных играх превосходство будет составлять 15-30%. С выходом новых игр, изначально оптимизированных под 3DNow! и использующих большее количество полигонов разрыв должен возрасти до 50-70%. К сожалению, на сегодняшних играх К6-2 уступает Pentium II, потому, что в основном используются инструкции сопроцессора. Готовящийся к выходу К6-3 будет иметь куш второго уровня, работающий на частоте процессора и снимет ограничение со скорости поступления данных. Это частично решит проблему. Но действительно мощное решение будет в К7, который сочетает мощь 3DNow! c мощью параллельного конвейерного сопроцессора. Но владельцы К6-2 не должны расстраиваться. При стоимости меньшей, чем у Pentium II и равной с CeleronA, они имеют сегодня(я не имею ввиду неоптимизированные игры) равную производительность в 3D. При этом целочисленный блок работает быстрее. А при хорошей оптимизации будут иметь преимущество и в 3D. Ну а пока разработчики колебались, MS ввела поддержку 3DNow! в DX6, а производители видеокарт ввели поддержку 3DNow! в драйвера. Первоисточник: hardware.ul.ru |
Статьи |
Новости |
Файлы |
Словарь |
Форум |
Производители |
Товары и цены |
Каталог ссылок |
Доска объявлений |