Пересылка данных Решение системы линейных уравнений

Результаты теста PC WorldBench, мин:с

Скорость обмена при последовательном доступе к ОЗУ, Мбайт/с

Pentium III: родная стихия Internet?

Несмотря на рекламную шумиху, поднятую вокруг нового процессора Intel, появление в названии еще одной единички не повлекло за собой радикальных изменений в архитектуре. По сути новый ЦП отличается от предшественника меньше, чем в свое время Pentium MMX — от Pentium. Так, если у Pentium MMX помимо прочих усовершенствований был увеличен размер кэша и впервые введены векторные SIMD-инструкции (SIMD, Single Instruction — Multiple Data, одна команда — много данных), то в Pentium III лишь расширен набор SIMD-инструкций без внесения каких-либо коррективов в ядро или кэш.

Справедливости ради стоит отметить, что пальма первенства по расширению набора SIMD-инструкций, первоначально работавших только с целыми числами (MMX), в области обработки данных с плавающей запятой принадлежит не Intel. Почти за год до появления Pentium III компания AMD уже выпустила процессор К6-2 с подобным расширением, получившим название 3DNow!.

Появление набора команд MMX практически сразу же поставило вопрос о его применении для обработки чисел с плавающей запятой. Одновременное использование MMX и блока плавающей арифметики, который был реализован еще в 486-х моделях процессоров (а факультативно в компьютере 8086/88), оказалось невозможным из-за того, что для хранения данных были задействованы одни и те же регистры. И дело даже не в схемотехнике. Нужно было, чтобы существующие многозадачные ОС могли аккуратно работать с новым ЦП, не теряя данные из регистров при переключении задач.

Если команды MMX работают в основном с цифровым звуком (микширование, регулировка громкости, преобразование формата) и растровой графикой (вывод шрифтов, спрайтов, в том числе полупрозрачных, световые эффекты) — другими словами, с тем, что можно непосредственно увидеть или услышать, — то команды обработки чисел с плавающей запятой (3DNow! у AMD и SSE* у Intel) предназначены в первую очередь для геометрических преобразований, необходимых для отображения трехмерной графики и поддержки сложных алгоритмов компрессии/декомпрессии данных с потерями, используемыми для компактного размещения больших объемов цифрового звука и видео. Кроме того, их с успехом применяют в областях, где возможно распараллеливание вычислений (реализация нейронных сетей или решение систем уравнений, не требующих высокой точности вычисления).

Все SIMD-инструкции арифметики с плавающей запятой обрабатывают числа с одинарной точностью (32-разрядные числа, 8 разрядов которых отведены под порядок числа, 23 — под мантиссу и 1 — под знак, что соответствует точности примерно 7—8 цифр в десятичной системе). Однако размер регистров 3DNow! составляет 64 разряда (два числа с плавающей запятой), а размер регистров SSE вдвое больше. Теоретически применение более длинных регистров позволяет сократить время выполнения расчетов в два раза, а в особых случаях и больше. Например, при обработке 3D-сцены сначала рассчитывается матрица преобразования для объекта, а затем с ее помощью вычисляются положения вершин всех полигонов, принадлежащих объекту. Матрица состоит из 16 чисел (4Ё4), которые могут целиком разместиться в SSE-регистрах. Емкости регистров 3DNow! для этого недостаточно, и приходится прибегать к дополнительному обмену данными с памятью, что снижает общую производительность.

Athlon: рожденный побеждать?

Спустя несколько месяцев после появления Pentium III компания AMD с не меньшей помпой анонсировала свой кристалл, недвусмысленно заявив о том, что извечному сопернику придется потесниться. Изделия AMD уже давно опережали конкурентов по целочисленным вычислениям, чего нельзя было сказать об операциях с плавающей запятой и кэшированием данных (единственное исключение составляет K6-III, имеющий кэш второго уровня). Постоянные обещания AMD «догнать и перегнать» Intel лишь подливали масла в огонь. Не потому ли декларация превосходства новых процессоров Athlon над процессорами Pentium III поначалу воспринималась с некоторой долей скепсиса? Тем большим было удивление специалистов, когда не только из лабораторий самой компании, но и из независимых источников стали поступать сообщения, что Athlon действительно является самым быстрым ЦП для ПК. На этот раз AMD удалось превзойти оппонента даже по такой недосягаемой ранее характеристике, как тактовая частота. Заслуживает внимания и четырехкратное превосходство объема кэш-памяти первого уровня (128 Кбайт у Athlon против 32 Кбайт Pentium III).

Уже около года Intel преследуют неудачи, а вот AMD чувствует себя превосходно, продавая свои более производительные процессоры с аналогичными тактовыми частотами по меньшей цене, чем конкурент. И если в конце прошлого года приобрести Athlon в розницу было не так-то легко, то сегодня в дефиците оказались уже Pentium III.

Появление процессоров Intel Coppermine может изменить ситуацию на рынке. Новый Pentium III выпускается по 0,18-микронной технологии, при этом кэш-память размещена на кристалле и работает на той же частоте, что и процессор. Кроме того, оптимизировано взаимодействие между кэшем и процессором и улучшена архитектура системного буфера. Все эти усовершенствования позволили Intel вплотную приблизиться к AMD, однако вопрос о первенстве по-прежнему остается открытым.

Производительность системы

В те далекие времена, когда компьютеры были... большими (персональных компьютеров просто не существовало), а основной областью применения дорогостоящей техники являлись научные вычисления, вопросы оценки производительности вычислительной машины были ничуть не менее важными, чем в наши дни. Научные расчеты производились на Фортране, да и процессоры тогдашних ЭВМ собирались из компонентов, многие из которых были уникальны, что не позволяло в качестве универсального теста выбрать программу, написанную на языке низкого уровня. Именно поэтому в основе базового варианта теста лежит Фортран-программа. Была проанализирована масса научных задач, составлены таблицы частоты выполнения в них различных видов инструкций и написана «эталонная» программа, корректно воспроизводящая полученные соотношения. Программа получила название теста Ветстоуна (Whetstone), а производительность компьютера измерялась в кило-, а теперь уже и в мега- ветстоунах. В нашем случае текст программы был оттранслирован с помощью Microsoft Fortran для создания 16-разрядного DOS-приложения реального режима, и Watcom Fortran — для 32-разрядного DOS-приложения и 32-разрядного приложения Windows NT.

На операциях с плавающей запятой процессор Intel все еще опережает AMD. Кроме того, преимущество Pentium гораздо сильнее проявляется в реальном режиме: 20% против 5—7%, при этом разница в производительности между 16- и 32-разрядными режимами связана с различием в трансляторах, а не ЦП. Заметим, что код, скомпилированный транслятором для работы в DOS, в DOS-сессии Windows 9x демонстрирует производительность на 20% большую, чем код, скомпилированный непосредственно для Windows.

Скорость при последовательном доступе к ОЗУ

Тест Ветстоуна наглядно демонстрирует вычислительную мощность процессора. Однако не менее важно и то, насколько хорошо ЦП работает с памятью. С этой целью нами измерялась максимальная скорость обращения к памяти при последовательном и произвольном доступе. Использовались как инструкции работы со строками, специально разработанные для обработки больших объемов данных, так и команды MMX. Последние позволяют получить еще больший выигрыш в производительности за счет того, что разрядность их регистров совпадает с разрядностью внешней шины данных ЦП, тогда как у обычных 32-разрядных регистров, через которые происходит работа строковых команд, это соотношение вдвое меньше. Исследовалась работа как с выравниванием данных в памяти (оптимизация по скорости), так и без выравнивания (оптимизация по размеру).

Наши тесты показали, что в большинстве случаев впереди оказывается Athlon, что неудивительно. Теоретически на идентичных тактовых частотах шины он позволяет пропустить вдвое больше данных, поскольку обмен происходит по переднему и заднему фронту тактового импульса. Особенно велика разница (вчетверо быстрее) при пересылке строки с выравниваем данных в памяти. По-видимому, процессор AMD специально оптимизирован для этого наиболее часто используемого режима. В то же время Pentium III лучше «переносит» данные без выравнивания, меньше теряя в производительности на их обработке. В частности, пересылку невыровненной строки он выполняет быстрее конкурента. Athlon заметно «тормозит» при попытках переслать данные из одной области ОЗУ в другую c помощью команд MMX. Учитывая распространенность таких операций, инженерам из AMD есть над чем поразмыслить.

Скорость при произвольном доступе к ОЗУ

Для определения скорости обмена с памятью при произвольном доступе в ОЗУ выделялись 128 массивов по 32 Кбайт. Далее датчиком псевдослучайных чисел вычислялся номер блока и смещение внутри блока, после чего производилось чтение данных. Для разных измерений устанавливались разные ограничения как на количество блоков, к которым можно обращаться, так и на диапазон смещений, который не обязательно равнялся длине блока. Например, в первом измерении мог быть выбран любой из 128 блоков, при этом данные считывались только из первых 32 байт каждого из них. Во втором диапазон допустимых смещений достигал 4 Кбайт, а выборка данных осуществлялась только из первого блока. Таким образом, в обоих случаях полный объем области, из которой производилось чтение данных, составлял 4 Кбайт, но в первом случае они были разбросаны по массиву объемом 4 Мбайт, а во втором — локализованы в одном месте.

Рекордную скорость чтения из кэша первого уровня (далее L1-кэш) демонстрирует Athlon. По всей видимости, этим результатом он обязан блоку целочисленной арифметики, который быстрее конкурента справляется с вычислением очередного псевдослучайного числа. Отставание Pentium III весьма ощутимо (почти вдвое). Однако продукт Intel эффективно выполняет кэширование. Скорость чтения практически не зависит от характера расположения данных в памяти. Интересно, что вчетверо больший кэш Athlon оказался здесь неповоротливым, снизив скорость чтения почти втрое. При увеличении размера читаемой области разница в показателях сокращается, причем процессоры попеременно демонстрируют лучшие результаты. Это и неудивительно, поскольку объемы кэша второго уровня (далее L2-кэш) и скорости его работы у кристаллов различаются: при максимальном размере массива Pentium III обгоняет Athlon более чем в полтора раза. Кроме того, результаты Pentium III более стабильны и меньше зависят от объема данных и их расположения в памяти.

Чтобы определить быстродействие кэширования, в ОЗУ выделялся буфер объемом 1 Мбайт, внутри которого осуществлялась пересылка данных. Для области размером 2 Кбайт подсчитывалось число пересылок за 55 мс. Далее размер обрабатываемой области увеличивался с шагом 2 Кбайт и измерения повторялись.

Результаты показали, что по скорости работы с L1-кэшем (на этот раз при последовательном доступе) Athlon проигрывает Pentium. А вот отставание для L2-кэша не столь велико, поскольку его размер обеспечивает передачу данных больших объемов.

Скорость обмена с внешними устройствами

Завершают общую «скоростную» картину результаты еще двух тестов: скорость чтения данных с жесткого диска и скорость записи в видеопамять. По первому параметру Pentium III почти на 20% опережает своего конкурента, а вот по второму на треть отстает. Полученные результаты в значительной степени зависят от системной платы и лишь отчасти могут характеризовать ЦП. Тем не менее привести их вполне уместно.

Решение систем линейных уравнений

Следующий тест представляет собой вариант бенчмарка Донгарра (Dongarra benchmark), являющегося Fortran-программой, решающей систему линейных уравнений. Для первых суперкомпьютеров задача эта была не из легких. А сегодня «персоналки» в состоянии решать по 400 таких систем в секунду, свободно размещая обрабатываемые данные в L2-кэше.

В исходном варианте теста решается система из 100 уравнений со 100 неизвестными, а сами вычисления производятся с двойной точностью, при этом объем используемых данных составляет около 80 Кбайт. В наших тестах размер данных варьировался. Выбранный диапазон ограничивался слева 20 уравнениями с 20 неизвестными, а справа 2500 уравнениями с 2500 неизвестными. Следует отметить, что объем обрабатываемых данных при увеличении числа неизвестных растет согласно квадратичной зависимости, а объем вычислений — кубической. К тому же проводить расчеты при большем количестве неизвестных — довольно трудоемкий процесс, тем более что по мере исчерпания кэша производительность вычислительной системы резко падает.

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

На этих тестах Athlon практически во всех измерениях показывает результаты лучше, чем Pentium III. Исключение составляет лишь расчет при размере массивов объемом 100—200 Кбайт, когда данные уже превышают размер L1-кэш обоих процессоров, но еще помещаются в L2-кэш. Напомним, что у процессора Intel он работает на той же частоте, что и ядро, а у AMD — на существенно более низкой. Отсюда вполне закономерно, что при обработке больших массивов система на наборе i815 с Pentium III по производительности догоняет Athlon.

Нахождение простых чисел методом «решето Эратосфена»

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

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

В нашем случае несколько видоизмененный алгоритм предполагает многократный проход по массиву, размер которого определяется исследуемым диапазоном чисел, без использования каких бы то ни было математических операций (кроме сложения при вычислении адреса). Таким образом, время выполнения теста «решето Эратосфена» наглядно демонстрирует способность вычислительной системы оперативно записывать данные в память. Тестовые программы были написаны на Фортране (при объеме массивов от 1 Кбайт до 40 Мбайт) и ассемблере (для объема массивов 128 Мбайт).

Сортировка данных

Достаточно часто на практике возникает потребность в сортировке массива. Напомним, что при увеличении объема данных время, уходящее на его сортировку, растет быстрее, чем сам объем.

Один из наиболее эффективных методов — быстрая сортировка Хоара (Hoare sorting). Текст программы, написанный на Паскале, был оттранслирован 16-разрядным компилятором Borland Pascal в реальном режиме (Real Mode, далее RM-режим) работы процессора, и в защищенном (Protected Mode, далее PM-режим). Размер сортируемого массива равнялся 63 Кбайт. Тот же массив был оттранслирован 32-разрядным компилятором Pascal компании TMT Development Corp. в PM-режиме. Кроме того, c помощью TMT Pascal был откомпилирован массив объемом 16 Мбайт в PM-режиме.

Во всех вариантах при работе в PM-режиме Athlon показал более высокие результаты, однако в RM-режиме соперники поменялись местами. И это несмотря на то, что объем данных свободно помещался в L1-кэш Athlon и явно превышал размер кэша у Pentium III.

Сжатие данных

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

Сжатие можно условно разделить на две категории: осуществляемое пользователем с помощью программ-архиваторов (ZIP, RAR, ARJ, LHA и др.) и «прозрачное» сжатие драйвером дисковой системы (Stacker, DoubleSpace, DriveSpace), при котором у пользователя создается впечатление, что просто увеличился объем диска. В первом случае весьма критична максимальная степень сжатия, тогда как во втором — скорость процедуры компрессии. В идеале драйвер, осуществляющий работу с диском, должен тратить меньше времени на процедуру сжатие — запись сокращенного объема данных, чем на стандартную — запись данных без сжатия, и аналогично вести себя при чтении (следует автоматически, если выполнено первое условие).

Возможно как «медленное» сжатие (алгоритм LZH), так и «быстрое» (алгоритм LZW). Программа LZH работает с текстовым файлом размером 22 Кбайт (с собственным исходным текстом) и оттранслирована для 16-разрядного RM- и PM-режимов работы процессора. Для этого случая исследуется только сжатие, поскольку распаковка занимает существенно меньшее время. Программа LZW работает в 32-разрядном PM-режиме с текстовым файлом объемом 6 Мбайт. В последнем случае проверялось как сжатие, так и распаковка данных.

В реальном режиме победил Pentium III, а все программы с использованием защищенного режима быстрее прошли на Athlon.

Кратчайший путь

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

Одним из эффективных методов нахождения кратчайшего пути в графе является алгоритм Дейкстры (Dijkstra algorithm) с использованием очереди FIFO (First In First Out). Компьютерный противник обязан думать быстро. Иначе страдать от этого придется именно вам, поскольку машина будет с запозданием реагировать на ваши действия. Предположим, что у нас есть карта, состоящая из участков с различной степенью проходимости. Для того чтобы определить, по какому пути двигаться, и вы и ваш компьютерный оппонент, наделенный искусственным интеллектом, должны определить кратчайшее эффективное расстояние (с учетом характеристик проходимости местности) от выбранной точки до любой из имеющихся на карте, а также выбрать оптимальный маршрут. Смоделируем ситуацию для всех возможных режимов работы процессора. Начинающим программистам советуем реализовать работу с очередью посредством отдельных процедур, вызываемых из основного модуля. Чтобы модуль работал быстро, лучше перенести обработку очереди внутрь основной процедуры, не тратя время на вызов и возвращение управления. Если и этой скорости окажется недостаточно, вероятно, следует переписать процедуру на ассемблере и развернуть циклы. Строго говоря, эти рассуждения справедливы не только для реализации искомого алгоритма, но и при написании любой программы. Не стоит упрекать подавляющее большинство программистов, выбирающих первый вариант, — проигрыш в производительности, как правило, компенсируется большей степенью надежности. Как известно, на этом и основано все объектно-ориентированное программирование (ООП). Согласитесь, небезынтересно узнать, как оба ЦП выполняют сверхоптимизированные программы, написанные на языке высокого уровня с обработкой очереди через отдельные процедуры (вариант А) или с обработкой очереди в теле основной процедуры (вариант Б), а также сверхоптимизированные программы на ассемблере (вариант В). Первые два варианта были проверены на графе размером 10 000 вершин, а третий — 65 536 вершин.

В защищенном режиме опять лидирует Athlon (правда, с небольшим отрывом), а в реальном быстрее оказался Pentium III, причем в оптимизированном варианте — вдвое.

Построение фракталов

Довольно многие вычислительные задачи решаются итерационными методами. Одно из наиболее зрелищных применений таких методов — построение фракталов. В нашем тестировании использовались несколько вариантов фрактала Жюлиа (Julia?s fractal) при различных значениях параметров и фрактал Мандельброта (Mandelbrot?s fractal).

Помимо собственно вычислений осуществлялся вывод изображения на экран. Все фракталы были построены в 32-разрядном защищенном режиме процессора. Несмотря на то что программа, воспроизводящая фрактал Жюлиа, была написана на Паскале c использованием арифметики с плавающей запятой (одно сложение и проверка), а фрактал Мандельброта — на ассемблере и полностью в целых числах (см. «Мир ПК», № 10/97, с.185), разница в результатах невелика: во всех случаях с небольшим отрывом лидировал Athlon.

Расчет оптических коэффициентов

Теперь перейдем к рассмотрению задач, в которых задействованы как память, так и блок вычислений с плавающей запятой. Одна из них — расчет оптических коэффициентов. Тестовая программа написана на Фортране и интенсивно использует вычисление тригонометрических функций. Размер массивов невелик (около 30 Кбайт). Несмотря на то что объем данных превышает размер L1-кэша Pentium III (тогда как Athlon свободно размещает его в этой области), процессор Intel демонстрирует более высокую производительность. В реальном режиме этот разрыв увеличивается.

Решение систем дифференциальных уравнений

В качестве еще одного теста, оценивающего как вычисления с плавающей запятой, так и интенсивный обмен с памятью, была использована программа, решающая системы дифференциальных уравнений в частных производных. Так же как и тест Донгарра, она не использует тригонометрические и трансцендентные функции, обходясь только арифметическими операциями (операции деления при этом, как наиболее медленные, по возможности не применяются). Программа написана на Фортране и выполняется в 32-разрядном режиме работы процессора.

Результаты получены путем экстраполяции производительности относительно ПК на базе Pentium-100. Любопытно, что при небольших объемах данных безусловный лидер — Athlon. Интенсивный обмен с памятью и простые операции — его стихия. Но уже на массиве 40 Мбайт Pentium III вырывается вперед, легко обгоняя конкурента.

Дотошный читатель, вероятно, уже заметил, что при проведении тестовых испытаний использовались программы, работающие с различными объемами данных. Максимальный, на котором Athlon демонстрирует преимущество перед Pentium III, составляет 16 Мбайт. Все три теста с использованием больших массивов — два по 40 Мбайт и один 128 Мбайт — выводят на первое место Pentium III. В то же время идентичные алгоритмы, примененные к меньшему объему данных, нередко отдают предпочтение Athlon.

Тесты PC World Benchmark

Как ведут себя наши подопечные в Windows-приложениях, предстояло определить пакету PC WorldBench, имитирующему работу пользователя в текстовом процессоре Microsoft Word, электронной таблице Microsoft Excel, системе управления базами данных Corel Paradox и графическом редакторе Micrografx Picture Publisher.

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

3D-графика

Из скучного офиса перейдем к развлечениям, а точнее к весьма динамично развивающемуся (и самому ресурсоемкому) виду — 3D-играм. Не секрет, что сегодня именно игры наиболее чувствительны к аппаратным ресурсам компьютера, «прожорливы» и способны разорить своего фаната в непрекращающейся погоне за новым «железом».

Обратимся к тесту 3DMark компании MadOnion.com. Его основная задача — комплексное тестирование графической системы, однако нас более интересует специальный тест, посвященный ЦП. В двух различных версиях пакета (стандартной и Pro) этот тест отличается типом выполняемых операций: CPU Geometry Speed (геометрическая скорость ЦП) и Synthetic CPU 3D Speed (синтетическая «трехмерная» скорость ЦП). В версии Pro измерения проходят в два этапа. Иной будет и количественная оценка величины производительности.

Надо сказать, что результаты оказались очень близкими. Судя по таблице, Athlon и здесь опережает Pentium III. Однако напомним, что Athlon работает на частоте 852,5 МГц против 850 МГц у Pentium III. Итак, снова паритет? Сей факт несколько настораживает. Известно, что у Pentium III вдвое больше разрядность регистров SIMD для плавающей арифметики, а значит, во столько же раз больше количество одновременно обрабатываемых данных. Pentium III корректно распознается пакетом лишь начиная с версии 99?Pro и последующими. Стандартная версия о существовании нового ЦП ничего не знает, и тем не менее результаты измерений практически одинаковы. Есть ли оптимизация под SSE? Если есть, то именно под SSE (фактически SSE включает в себя 3DNow!) или, может быть, последние просто используются как 3DNow! на половинной мощности? К сожалению, ответов на эти вопросы у нас пока нет. Есть результаты тестов, согласно которым производительность процессоров практически одинакова.

Звук и цвет

Как уже было сказано, сравнение скорости выполнения SIMD-операций над числами с плавающей запятой — весьма сложная задача из-за различного набора команд, хотя команды MMX у обоих процессоров одинаковы. Наше исследование было бы неполным, если бы мы не попытались сравнить процессоры с точки зрения выполнения этого набора инструкций.

Поскольку MMX-инструкции хорошо подходят как для обработки растровой графики, так и цифрового звука, эти задачи и были взяты для сравнения двух ЦП. Первая из них — микширование звука: сведение в один поток (44 100 Гц, 16 разрядов стерео) восьми каналов фонограммы продолжительностью звучания 1 мин с преобразованием частоты дискретизации, разрядности (8 и 16 разрядов) и числа каналов (моно и стерео), а также управление громкостью каждого канала. Исходные сигналы до обработки имели частоту дискретизации 22 050 Гц и 44 100 Гц. Нетрудно подсчитать, что загрузка процессора при таком микшировании составит менее половины процента.

Вторая задача — преобразование формата цветного изображения из формата true color (32 разряда) в формат hi color (16 разрядов). В режиме true color, когда на каждую составляющую цвета приходится по одному байту, удобнее синтезировать и обрабатывать изображение. Кроме того, обычно именно в таком формате изображение хранится в файлах. С другой стороны, режим hi color требует вдвое меньшего объема видеопамяти. Учитывая эту особенность в большинстве случаев целесообразно выполнять преобразование (конвертацию) «32->16» изображения перед выводом на экран.

Измерения производились только для разрешения экрана 800х600 точек. Чтобы оценить пользу или, напротив, вред перекодировки «на лету» при пересылке в видеопамять, было измерено время выполнения следующих операций:

  • пересылка 32-разрядного буфера (командой rep movsd) в видеопамять в режиме true color (32->32 Screen);
  • пересылка 32-разрядного буфера в 16-разрядный буфер в оперативной памяти с перекодировкой «на лету» (32->16 Memory);
  • пересылка 16-разрядного буфера в видеопамять (16->16 Screen);
  • переcылка 32-разрядного буфера с перекодировкой «на лету» в видеопамять в режиме hi color (32->16 Screen).

Установленная на ПК видеоплата поддерживала режим адресации видеопамяти LFB (Linear Frame Buffer) и преимущества шины AGP (скорость пересылки данных в видеопамять больше, чем скорость пересылки данных внутри ОЗУ). Для сравнения та же операция была проделана в DOS на системе с Pentium III, когда драйверы AGP не подгружались. Сходные результаты могут наблюдаться при отсутствии LFB или на PCI-графическом адаптере.

* * *

Итак, приведенные цифры не дают однозначного ответа на вопрос, какой же из процессоров лучше. В Windows-приложениях кристаллы продемонстрировали на удивление близкие результаты. По синтетическим тестам можно сделать вывод, что Intel лучше работает в реальном режиме и с данными с плавающей запятой, а AMD — с целыми числами и ММХ, а также с памятью. Интересно, что практически во всех тестах, работающих со сверхбольшими массивами (более 20 Мбайт), победу одержал Intel. Исключение — решение системы линейных уравнений. Следует отметить, что и здесь победа AMD не безоговорочна. В то же время при размере данных от сотен килобайт до десятков мегабайт господствует Athlon.

Смена лидера — явление перманентное. На рынке процессоров разыгралась нешуточная конкуренция, а значит, в выигрыше покупатель. Покупатель... Мы как-то совсем упустили из виду покупателя. А ведь его в немалой степени интересует и цена процессора. Здесь первенство у Athlon. Разница в ценах на платы для Slot A и Slot 1, очевидно, в ближайшее время будет нивелирована. Следует ожидать перемен и на рынке систем начального уровня (ПК на базе Socket A—AMD Duron и Socket370—Intel Celeron/VIA Cyrix), где вся борьба за право быть на вершине еще впереди.

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

Явного фаворита нет, и это... радует.

Редакция благодарит московское представительство Advanced Micro Devices, Inc., а также компании «ПИРИТ», NT Computer, Gigabyte Technology Co., Ltd. и Micro-Star International Co. за предоставленные для тестирования образцы продукции.


* SSE — Streamig SIMD Extensions.


Тестовая платформа

При проведении тестов была использована следующая конфигурация системы:

  • ЦП — Intel Pentium III 850 МГц (Coppermine)/AMD Athlon 850 МГц;
  • системная плата — MSI MS-6163 Pro (Intel 440BX)/Gigabyte GA-7VX (VIA KX133);
  • оперативная память — SDRAM PC-100, 128 Мбайт, 8 нс и SDRAM PC-133, 2Ё64 Мбайт, 7,5 нс;
  • жесткий диск — Fujitsu MPВ3130 13,02 Гбайт (IDE primary master);
  • дисковод компакт-дисков — Samsung 48X (IDE secondary slave);
  • дисковод Zip-100 — Panasonic (IDE secondary master);
  • видеоплата — 3D MSI AGPhantom Riva TNT2, 32 Мбайт SDRAM;
  • операционная система — Windows 98 SE.

Процессор Athlon работал на частоте 852,5 МГц. Отдельные тесты для Pentium III были проведены с использованием системной платы Gigabyte GA-60XM7E на наборе Intel 815. Для проверки стабильности работы системы при проведении тестовых испытаний использовались модули памяти разных типов и объема так, чтобы все имеющиеся на системных платах банки памяти были заполнены. Конфликты не обнаружены.

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


Основные характеристики процессоров
 Pentium IIIAthlon
Технология, мкм0,180,18 и 0,22
Количество транзисторов, млн.2822
Площадь кристалла,мм2106184
Объем кэша первого уровня, Кбайт16 (код) + 16 (данные)64 (код) + 64 (данные)
Объем кэша второго уровня, Кбайт256512
Частота работы кэша второго уровня по отношению к частоте ЦП1/11/3, 2/5, 1/2

Результаты тестирования процессоров Athlon и Pentium III
ТестыAthlonPentium III
НАУЧНЫЕ ЗАДАЧИ
Производительность системы, MWhetstones
16-разрядное приложение DOS108,4129,3
32-разрядное приложение DOS564606
32-разрядное приложение Windows NT482506
Скорость чтения при произвольном доступе к ОЗУ, Мбайт/с
4 Кбайт
128 блоков по 32 байт37,251,8
1 блок по 4 Кбайт100,558,3
128 блоков по 1 Кбайт23,719,8
128 Кбайт
4 блока по 32 Кбайт52,157,0
1 Мбайт
32 блока по 32 Кбайт14,113,8
4 Мбайт
128 блоков по 32 Кбайт7,010,4
Скорость обмена с внешними устройствами, Мбайт/с
чтение с жесткого диска6,6237,773
запись в видеопамять164,7548,82
записи в видеопамять (AGP )2168,0247,0
Нахождение простых чисел методом "решето Эратосфена", отн. ед.
1 Кбайт181181
1 Мбайт412550
3 Мбайт177157
40 Мбайт18951543
128 Мбайт742633
Сортировка массива, с
63 Kбайт
реальный режим 16-бит0,0400,035
защищенный режим 16-бит0,1380,145
защищенный режим 32-бит0,0200,025
16 Mбайт
защищенный режим 32-бит7,469,74
Сжатие данных, с
по алгоритму LZH (22 Kбайт)
реальный режим 16-бит0,880,66
защищенный режим 16-бит2,362,69
по алгоритму LZW (6 Mбайт)
защищенный режим 32-бит (сжатие)0,3820,404
защищенный режим 32-бит (распаковка)0,1560,169
Нахождение кратчайшего пути в графе, мc
10 000 вершин в графе
реальный режим 16-бит (вариант A)11,18,27
реальный режим 16-бит (вариант Б)9,314,83
защищенный режим 16-бит (вариант A)73,986,1
защищенный режим 16-бит (вариант Б)70,275,3
65 536 вершин в графе
защищенный режим 32-бит (вариант В)14,816,1
Построение фракталов, отн. ед.
Julia-1106113
Julia-44548
Julia-899
Mandelbrot8789
Вычисление оптических коэффициентов, с
реальный режим 16-бит3,792,97
защищенный режим 32-бит1,040,93
Решение систем дифференциальных уравнений в частных производных, % от Pentium-100
40 Кбайт13471273
400 Кбайт14681331
4 Мбайт15241460
40 Мбайт13221533
МУЛЬТИМЕДИЙНЫЕ ЗАДАЧИ
Обработка звука, с0,1850,197
Скорость ЦП в геометрических вычислениях (тест 3Dmark), отн. ед.
CPU Geometry Speed9,8319,823
Synthetic CPU 3D Speed12,86212,263
Скорость пересылки данных из экранного буфера (режим 800х600), мс
32 to 32 Screen11,07,4 (39,9)3
32 to 16 Memory10,213,1 (12,6)3
16 to 16 Screen5,53,9 (20,0)3
32 to 16 Screen8,910,6 (12,2)3
1 Режим адресации видеопамяти через окно. Шина AGP отсутствует или не используется (например, в «чистом» DOS).

2 Режим Windows (в том числе и DOS-сессии). Использованы режим адресации видеопамяти LFB (Linear Frame Buffer) и преимущества шины AGP.

3 В скобках приведено значение для DOS.
790