
| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Процессор AMD K6-2 |
|
Теоретически, 3DNow! должен заменить сопроцессор при расчетах трехмерной геометрии и существенно ускорить выполнение этих вычислений. Модуль 3DNow! может выполнять до четырех SIMD (Single Instruction Multiple Data) инструкций (из своего 21-командного набора) параллельно, что при грамотном использовании может дать небывалый прирост производительности. Хорошей иллюстрацией этого тезиса может послужить Quake2, работающий на процессорах K6 в полтора раза медленней, чем на Pentium той же частоты. Однако, вопреки распространенному мнению, это связано не с тормознутостью AMD-шного сопроцессора, а с тем что Intel реализовал в своем кристалле возможность параллельной работы процессора с арифметическим сопроцессором. В Quake2, код оптимизирован с учетом этой особенности, поэтому если процессорные и сопроцессорные инструкции не могут выполняться одновременно (как на AMD K6), производительность получается крайне низкая. K6-2 должен решить эту проблему, но другим путем - за счет конвейеризации 3D вычислений в модуле 3DNow! Однако, вопрос распараллеливания вычислений должен решаться программистом, что вызывает определенные трудности при реализации алгоритмов, тем более, что процесс вычисления геометрии 3D-сцен далеко не линейный. Поэтому, теоретическая производительность К6-2, значительно превышающая скорость всех современных PII-процессоров, достигнута быть не может. Таким образом, чтобы от 3DNow! был хоть какой-то эффект, необходимо, чтобы приложение использовало те самые 21 инструкцию. Причем не как-нибудь, а с учетом конвейерной структуры этого модуля процессора. Сейчас вся оптимизация под K6-2 заключается либо в использовании графических API с поддержкой 3DNow!, либо в выпуске специальных версий программ. Разберемся с оптимизацией поподробнее. Все тесты выполнялись в системе с системной платой FIC VA-503+ c чипсетом VIA MVP-3, 64 Мбайтами SDRAM, видеокартой Diamond Viper V330 и 3D ускорителем Diamond Monster II с 12 Mбайтами памяти. Тестирование выполнялось под Windows 98 и DirectX 6.0 beta 1. В играх было использовано разрешение 640х480 и 800х600. В системе на PII использовалась плата ASUS P2B. DirectX 6.0Как известно, в DirectX 6.0 (при условии оптимизированных видеодрайверов) включена поддержка 3DNow! Однако, надо себе представлять как. Direct3D состоит из двух слоев: высокоуровневого (Retained Mode) и низкоуровневого (Immediate Mode). Immediate mode позволяет приложениям просто напрямую оперировать с видеопамятью, а retained mode включает в себя какие-то функции геометрического конвейера. Отсюда видно, что оптимизации в immediate mode быть не может в принципе. Вся надежда на retained mode. Однако, Microsoft, по крайней мере в DirectX 5.0 особо не напрягался работая над retained mode. В результате получилось, что геометрический конвейер DirectX 5.0 работает не просто медленно, а очень медленно. Помните, как дергаются кадры в 3D WinBench? Это как раз потому, что этот тест - практически единственное приложение, реализующее геометрический конвейер через DirectX. Остальные полагаются на собственные силы. Приведенные ниже результаты измерения производительности в 3D Winbench 98, таким образом, показывают лишь то, что теоретически можно выжать из 3DNow!, используя DirectX. ![]() Практически же, в DirectX 6.0 ситуация с реализацией геометрических функций начала меняться в лучшую сторону. Разработчики игр это просекли, и опасливо начинают использовать элементы этого конвейера. Например, в Forsaken, используются какие-то функции, но прирост производительности крайне незначителен. ![]() Так что пока разработчики не начнут использовать геометрию DirectX в полной мере, владельцам K6-2 надеяться здесь не на что. Glide 3.0Пока оптимизированные драйвера Glide не доступны, можно сообщить только теоретические прикидки. Glide включает небольшое число геометрических функций, поэтому, по оценкам самого AMD, использование оптимизированных под K6-2 драйверов даст лишь 15% прирост производительности. OpenGLВ API OpenGL включены практически все функции графического конвейера, причем SGI, разрабатывая свои библиотеки позаботилась как и о высокой эффективности, так и о возможности распараллеливания вычислений. По нашему мнению, использование OpenGL и драйверов, оптимизированных под эту библиотеку - лучшее решение. Иллюстрация этого тезиса - немереный рост fps в Quake2, при использовании оптимизированного под 3DNow! минипорта. ![]() А производителям игр, не только не надо особо заморачиваться на геометрические вещи, к тому же и оптимизация сама по себе происходит, хочешь под один процессор, хочешь - под другой. Проблема одна - игр, работающих через OpenGL раз, два - и обчелся. А производители видеокарт не то, что под 3DNow! свои OpenGL-драйвера заточить не могут, у них вообще сделать их не получается. Так что надежда на использование этой технологии небольшая. Оптимизация приложенийПопробуем объяснить, чем плоха оптимизация непостредственно самих программ. Дело в том, что компиляторы, генерящие 3DNow!-инструкции в природе отсутствуют. Да и вряд ли появятся. Спроектировать конвейерную параллельную обработку 3D-вычислений, да еще и так, чтобы исключений не было, очень трудно, и машинному алгоритму скорее всего непосильно вообще. Что же касается оптимизации вручную, то это также непросто и требует больших затрат. Поэтому, оптимизация часто делается чисто формально, как в Unreal, где на 3DNow! возлагаются элементы обсчета кинематики монстров, что вообще не дает никакого (!) выигрыша. Единственный более-менее положительный эффект от ручной оптимизации заметен в Incoming. ![]() Но с выигрышем от использования OpenGL, ярким флагом, которым AMD размахивал на презентации (уж тут-то программисты постарались), показывая Quake2, этот прирост сравниться не может. ВыводыЕсли исходить из того, что K6-2 обычный процессор K6 плюс еще что-то, а следовательно, процессор, показывающий очень неплохие результаты в офисных приложениях и, при выполнении ряда дополнительных условий, еще и в играх, а также учитывая цену, то K6-2 - просто находка. ![]() Однако уже через полгода, когда выйдет Intel Katmai со своим набором 3D-инструкций KNI (MMX2), которые с 3DNow! не совместимы, про K6-2 все производители приложений и драйверов скорее всего забудут. Поэтому, мы не станем рекомендовать AMD K6-2 в качестве альтернативы PII. Но, как решение для апгрейда старой Socket-7 системы, K6-2 - решение практически идеальное. Однако, следует иметь в виду, что для использования в старой материнской плате K6-2 необходимо напряжение питания 2.2 В, и, при отсутствии внешней частоты 100 МГц, умножения на 4 и выше. Заметьте, что приведенный выше список приложений - это практически все, что можно выжать из нового процессора от AMD. Он, конечно, будет расширяться, но вряд ли быстрыми темпами из-за трудоемкости оптимизации под 3DNow! Тем более, что под MMX2 будет выпущен просто компилятор, который освободит разработчиков от ненужных усилий. Так что, пожалуй, целерон будет жить :) ![]() 11 Июля 1998 г.
|
| Комментарии? Поправки? Дополнения? pavel@ixbt.com |

| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Copyright (c) by iXBT, 1998. Produced by pavel@ixbt.com & gavric@ixbt.com Дизайн (с) 1998 студия РусАрт |