30199-1 (Intel Pentium III), страница 2
Описание файла
Документ из архива "Intel Pentium III", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "30199-1"
Текст 2 страницы из документа "30199-1"
То есть вместе с Pentium III, мы получили еще один блок, подобный MMX, только оперирующий с вещественными числами. Это нововведение может оказаться очень полезным в широком ряде приложений:
трехмерная графика и моделирование, расчет освещенности c использованием вычислений с плавающей запятой;
обработка сигналов и моделирование процессов с широким диапазоном изменения параметров (вычисления с плавающей запятой);
генерация трехмерных изображений в программах реального времени, не использующих целочисленный код;
алгоритмы кодирования и декодирования видеосигнала, обрабатывающие данные блоками;
численные алгоритмы фильтрации, работающие с потоками данных.
Однако почему же Intel назвал процессор новым именем, отказавшись от Pentium II SSE (по аналогии с Pentium MMX)? Неужели производитель видит в SSE качественный шаг? Думается, нет. Дело тут в маркетинге. Приписав к названию аббревиатуру, Intel открыто показал бы, что SSE - главное нововведение в их процессоре. И тогда, вслед за ними, все конкуренты также смогли бы объявить о поддержке SSE - основное маркетинговое преимущество было бы утеряно. Так именно и произошло с ММХ. Потому Pentium II SSE называется Pentium III - теперь конкурентам придется говорить о "совместимости", что, по сути, для них более унизительно. Помните, как подозрительно изменилась цифра 3 на III в названии AMD K6-III? ;)
Теперь посмотрим, что же дают новые SIMD-инструкции приложениям, оптимизированным под них. Учтя печальный опыт MMX, когда новые команды появились без соответствующей поддержки со стороны софтверных девелоперов (что привело, в конце концов, к своеобразному бойкоту новых инструкций), Intel на этот раз, задолго до официального выхода нового процессора, разослал программистам опытные экземпляры процессора для оптимизации. В итоге, мы уже сейчас имеем некоторое количество приложений, оптимизированных под SSE.
В этом тесте выполняется стандартная процедура компрессии в MPEG-1, воспроизведение файла этого формата, обработка изображения - поворот, слияние двух изображений и цветоделение, а также обработка звука. Выполнение всех этих задач может быть оптимизировано для SSE, результат этой оптимизации мы видим на диаграмме - прирост относительно Pentium II составляет порядка 40-50%.
Теперь - о 3D-графике и играх. Здесь разговор об оптимизации должен быть отдельный. Дело в том, что оптимизировать 3D-игру под SIMD-инструкции можно тремя путями:
оптимизацией на уровне видеодрайверов;
оптимизацией на уровне DirectX. При этом предполагается, что приложение должно использовать оптимизированные функции DirectX;
оптимизацией самого приложения.
Что касается оптимизации драйверов, то уже практически все производители видеокарт объявили о своем намерении выпустить такие драйвера. Некоторые, например Nvidia, уже имеют драйвера с поддержкой SSE. Собственно, мы на них и проводили наши тесты. Однако, как видно сейчас по тесту Quake2, и как мы помним по опыту 3DNow!, толка от такой оптимизации нет. Никакого прироста в скорости не видно.
Что касается DirectX, то в версии 6.1 (а значит, и во всех последующих) оптимизация под SSE имеется. Изменение претерпел Lighting and Transformation Engine, то есть набор функций для преобразования 3D-сцены и расчета освещений. Результат от такой оптимизации может быть ощутим, если приложение пользуется этими функциями, а не считает все само. Для оценки прироста производительности от оптимизации DirectX достаточно посмотреть на результаты теста 3D Winbench 99 Lighting and Transformation.
Здесь имеется прирост от использования SSE порядка 80-90%. Это как раз тот максимум, который можно получить при использовании оптимизированного DirectX. Однако эта возможность так и остается теоретической - DirectX Lighting and Transformation Engine, также как как и Retained Mode, практически никакие программы не используют. Причины, как уже отмечалось выше, в низком быстродействии и скудных возможностях. Правда, в DirectX 7.0 ситуация обещает исправится - Microsoft сообщил, что работает над усовершенствованием собственного движка. Таким образом, нигде, кроме как в 3D Winbench, результатов оптимизации DirectX не видно.
Обратимся теперь к оптимизированным программам. Самой известной на данный момент является игра Rage Dispatched, намеченная к выходу во втором квартале 99-го года. Сцены этой игры имеют до 55000 треугольников и несколько источников света. На данный момент такая детализация нигде не используется из-за нехватки вычислительных мощностей современных процессоров. Во время тестирования с процессором Intel Pentium II 450 число fps в разрешении 800х600х16 падало ниже отметки 10fps, и была заметна неравномерность движения. С процессором же Pentium III fps в этом режиме не падает ниже 25. Более подробные результаты приведены ниже:
Как видно, прирост от использования новых SIMD-инструкций составляет почти 50%. То есть при условии грамотной оптимизации под Pentium III игроманы могут получить неплохой прирост. Дело - за разработчиками игр.
Еще одним тестом, в котором используется оптимизация под новый процессор, является новая версия 3Dmark99 MAX.
На этом синтетическом тесте, правда, основанном на реальном движке, прирост от использования SSE составляет 20%. Здесь, также как и в Dispatched, разработчики отказались от применения оптимизированных функций DirectX. Более низкий, чем в Dispatchеd, прирост обусловлен как раз тем, что, наряду с расчетом и отображением 3D-сцен, 3DМark тестирует и включает в итоговый индекс и такие характеристики, как пропускная способность памяти видеокарты, совсем не зависящие от CPU.
Специально для оценки эффективности процессора в 3D-играх, 3Dmark99 MAX предлагает индекс CPU 3DМark, просчитывающий 3D-сцены, но не выводящий их не экран. Таким образом, получается результат, зависящий только от возможностей процессора по обработке 3D-графики и от пропускной способности основной памяти. В данном случае мы видим, что SSE дает 60-70% прирост. Что же, неплохо. Это как раз тот теоретический максимум, который можно получить от использования нового Pentium III в играх. Соответствие полученных результатов результатам 3D Winbench 99 Lighting and Transformation подтверждает их правильность.
Кажется, к этому моменту вы должны обладать практически полной информацией о новом процессоре. Недовольными могут остаться только поклонники AMD. Поэтому для полноты изложения попытаемся затронуть вопрос о сравнении технологий 3DNow! и SSE. Чисто теоретически, SSE оперирует с 128-битными регистрами, 3DNow! - с 64-битными. Это значит, что SSE-конвейер процессора Pentium III за один такт может обработать 4 пары значений, в то время как 3DNow!-конвейер - только 2 пары. Однако в Pentium III - всего один SSE-конвейер, в то время как у K6-2 и K6-3 их два. То есть за один такт оба процессора могут обработать 4 пары вещественных чисел одинарной точности. Но в K6-2 и K6-3 конвейеры устроены таким образом, что они не могут выполнять одинаковые операции одновременно. Хотя, на мой взгляд, это ограничение несущественно.
Таким образом, так как KNI использует восемь 128-битных регистров вместо восьми 64-битных в 3DNow!, у Pentium III получается почти в два раза больше регистров для эффективной оптимизации. И это, скорее всего, единственное значимое преимущество KNI. Однако наличие в два раза больших регистров, это не тоже самое, что наличие в два раза лучше соптимизированного кода. Более чем троекратное превосходство SSE в числе инструкций (70 против 21) также малосущественно - все наиболее значимые для 3D-обработки операции 3DNow! выполняет в SIMD-режиме.
Резюме такое: разобраться, что лучше, исходя из теоретических соображений, трудно, так как возможности примерно одинаковы. Тем более, нет информации о времени, затрачиваемом процессорами на различные команды. Так что, перейдем к тестам. Процессор AMD K6-2 тестировался в аналогичной конфигурации на системной плате Chaintech 5AGM2.
В целом, видно значительное отставание AMD K6-2, однако, что касается прироста от применения SIMD-команд, то тут не все так однозначно.
"Мал, да удал!" - только и остается сказать в отношении 3DNow!. Несмотря на все "но", на 64-битные регистры и на меньшее количество команд, 3DNow! неожиданно дает больший эффект при геометрической обработке и расчете освещенности. Причиной этого, по словам разработчиков программ, является то, что 3DNow! предоставляет большую гибкость при работе с небольшими объемами данных. Все это касается лишь программирования игр. В других, неигровых приложениях, соотношение обрабатываемых данных может быть совершенно иным и расклад получится совсем не таким. И хотя полученный результат верен только в предположении, что 3DMark99 MAX оптимизирован под оба набора инструкций одинаково хорошо, "намухлевать" двукратное преимущество 3DNow! программисты FutureMark вряд ли осмелились бы. Потому, скорее всего, результат справедливый, по крайней мере качественно и для игр. Но пока у процессоров AMD не будет конвейерного FPU (а в K7 он, вроде, обещается), говорить об их превосходстве в играх просто смешно. Это, скорее всего, является еще одной причиной такого превосходства 3DNow!, во многом заменяющего медлительный арифметический сопроцессор. Разработчики стараются переложить часть работы сопроцессора на 3DNow!. В Pentium III таких проблем нет, каждый процессорный блок занят своим делом и прирост от SSE в чистом виде меньше. Так что вся надежда на то, что AMD K7, в котором AMD обещал-таки переработать FPU, все-таки станет объединением всех передовых микропроцессорных технологий.