Года полтора назад мне довелось делать обзор системных плат платформы Socket 462 (см. «Там, где гнездится «Атлон», «Мир ПК», №2/03). Российское представительство AMD предоставило для тестирования экспериментальную модель процессора Athlon XP. На ее корпусе от руки было написано «2800+». Первая же система, собранная на базе этого процессора, проявила некоторую неустойчивость в работе: одни тесты проходили нормально, а другие, особенно продолжительные, «вываливались» по ошибке.

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

Скорость последовательного доступа

А теперь следует раскрыть карты и сказать, что экспериментальный процессор был изготовлен на базе ядра Thoroughbred-B с 256-Кбайт кэш-памятью второго уровня и предназначался для работы с тактовой частотой 2250 МГц. Старшей моделью в этой линейке является процессор с рейтингом 2700+ и тактовой частотой 2167 МГц. Очевидно, инженеры AMD отказались от идеи «разгонять» существующее ядро до частот свыше 2,2 ГГц.

Вскоре появился процессор Barton с вдвое увеличенным объемом кэш-памяти, но наивысшая частота ядра не изменилась. Рейтингу 3000+ соответствовал процессор, работавший с теми же 2167 МГц, но обладавший более высокой производительностью именно из-за увеличения объема кэш-памяти. Следующий шаг — достижение рейтинга 3200+ — обеспечивался повышением частоты FSB, но частота самого процессора составила лишь 2200 МГц, что все-таки заметно ближе к 2167, нежели к 2250 МГц.

Очередной рост рейтинга связан уже с созданием 64-разрядной платформы. Судя по результатам тестирования, новое ядро, скорее всего, было почти точной копией старого с возросшей разрядностью. Но на реальных задачах оно работало быстрее опять же за счет в очередной раз удвоенного объема кэш-памяти, достигшего 1 Мбайт, причем при частотах, не превосходящих 2,2 ГГц. Следует отметить, что повышение рейтинга с 2700+ до 3400+ при практически неизменных частоте и архитектуре ядра вполне отражает в среднем рост производительности на реальных задачах.

Скорость произвольного доступа (запись)

Наконец компании AMD удалось преодолеть неприступный долгое время барьер — выпущен процессор Athlon 64 3700+ с тактовой частотой 2400 МГц. Так получилось ли у AMD выполнить свою сверхзадачу?

Уже первый опыт вызвал вопросы, что в принципе не было неожиданностью: хотя ОС Windows XP была установлена без каких-либо проблем, но при прохождении отдельных тестов система зависала. Системных плат для опытов, правда, было две, однако прежде чем перейти ко второй, следовало выжать все возможное из первой, ведь неизвестно, как поведет себя следующая. Так что дня три я размышлял: что же вызвало проблему — процессор или плата? Смена последней расставила все точки над i: все тесты прошли безукоризненно. Кстати, предъявлять претензии к платам не было никаких оснований — ни у той, ни у другой в документации нет явных ссылок на поддержку модели 3700+.

Итак, процессор реабилитирован, и можно вернуться к проведенным тестам. Тестовая платформа включала центральный процессор AMD Athlon 64 3700+ (2,4 ГГц), 512-Мбайт ОЗУ типа PC-3200 (два модуля по 256 Мбайт), две системные платы на базе НМС VIA K8T800/VT8237, видеоплату nVidia GeForce 5600 Ultra, 250-Гбайт жесткий диск Maxtor Serial ATA 7200 об/мин, 48X-дисковод CD-ROM Lite On LTN483L и блок питания VT-420LD (400 Вт). Была предустановлена ОС Windows XP SP1.

Скорость произвольного доступа (чтение)

Некоторая сложность трактовки результатов обусловлена различной конфигурацией. Дело в том, что во всех сравниваемых системах было установлено 1024-Мбайт ОЗУ, причем система на базе Pentium 4 была оснащена памятью типа DDR2-533, тогда как системы на основе Athlon имели память типа DDR400. Кроме того, различались и видеоплаты. И если в системах на базе Athlon 64 и Pentium 4 они были примерно одного уровня — GeForce 5600 Ultra и GeForce 5750 соответственно, то вместе с Athlon FX была применена мощная GeForce 6800 Ultra.

По скорости последовательного обмена с оперативной памятью Athlon 64 заметно уступает процессорам Intel, и это не удивительно. Наиболее производительным считается режим, при котором частота тактирования памяти совпадает с частотой внешней шины процессора (FSB), что подтверждается результатами измерений. Но если Pentium 4 способен передавать по четыре порции данных за такт, то процессоры Athlon — только по две. Поэтому в современных контроллерах памяти используется двухканальная архитектура, которая при наличии двух модулей памяти позволяет читать из нее при суммарной ширине шины 128 разрядов по две порции данных за такт, а передавать процессору — четыре порции по 64 разряда. Но исторически первым был серверный процессор Opteron, имеющий встроенный контроллер памяти и 128-разрядную внешнюю шину. Чуть позже появились НМС с двухканальной архитектурой, а потом путем «урезания» Opteron был получен Athlon 64, имеющий вдвое более узкую шину данных. К моменту объявления последнего недостаток его встроенного контроллера памяти стал уже очевиден. Поэтому вскоре был выпущен Athlon 64 FX, лишенный подобного недостатка, но компания AMD не намерена отказываться и от Athlon 64.

На графике зависимости скорости последовательного доступа от объема данных отчетливо просматриваются особенности процессорной кэш-памяти — огромный кэш первого уровня (L1), обладающий невысокой скоростью именно из-за своего размера. Известно, что чем больше объем кэш-памяти, тем выше ее латентность. Низкая скорость обмена с кэш-памятью второго уровня (L2) имеет исторические причины. В первых процессорах AMD с кэш-памятью второго уровня на кристалле ее объем лишь вдвое превосходил суммарный объем L1, потому была применена технология, при которой процессор мог обращаться к L2 напрямую, минуя L1. Это привело к тому, что суммарный объем кэш-памяти получался объединением объемов кэш-памяти обоих уровней. У процессоров Intel L2 передавала данные кэш-памяти первого уровня, а процессор общался только с L1. При этом объем L1 целиком поглощался объемом L2, и суммарный объем в точности равнялся объему кэш-памяти второго уровня. Но такая архитектура позволила Intel еще в Pentium III Coppermine существенно расширить ширину шины между двумя уровнями кэш-памяти, что привело к заметному росту скорости последовательного обмена с L2. Для процессоров AMD такая архитектура была неэффективна до тех пор, пока объем L2 лишь немного превосходил объем L1. Теперь же, когда объем L2 достиг 1 Мбайт, потеря 64—128 Кбайт из объема L2 для дублирования L1 уже не считается существенной.

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

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

Теперь перейдем к синтетическим тестам, чтобы продемонстрировать особенности процессоров при выполнении тех или иных алгоритмов.

Короткие циклы процессор AMD выполняет намного быстрее, расходуя в среднем около 5 тактов на вычисление очередного псевдослучайного числа, тогда как процессорам Intel требуется для этой же работы 15—19 тактов. Здесь явно видно преимущество более короткого конвейера. Работу, подразумевающую проведение объемных вычислений без интенсивного обмена с памятью, Athlon выполняет гораздо быстрее, чем Pentium. По мере увеличения доли обмена показатели падают.

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

Рассмотрим и итоги наиболее известных тестов на производительность, результаты которых для разных процессоров можно найти в Интернете и специализированных изданиях. Один из них — SiSoft Sandra. Правда, тот факт, что в тестах используются инструкции SSE2, но не применяются 3Dnow!, заставляет несколько настороженно относиться к результатам измерений, ведь есть такое понятие, как процессоро-зависимая оптимизация. Известно, что компилятор Intel C генерирует наиболее оптимальный код для 80% продаваемых процессоров с архитектурой x86, вследствие чего довольно широко используется в тех сферах, где основной упор делается не на удобство среды разработчика, а на скорость выполняемого кода. Результат вычислений с плавающей точкой PassMark интересным образом перекликается со скоростью вычисления фрактала Мандельброта (также в числах с плавающей точкой). Показатели для Athlon 64 3700+ и Pentium 4 3600 (Prescott) почти совпадают, а Pentium 4 XE 3400 (Northwood) отстает от них примерно в 2,5—3 раза.

Следующие два теста дают представление о расстановке сил в 3D-приложениях, написанных с использованием DirectX и OpenGL. И если в первом случае с точки зрения процессорной производительности существенной разницы не наблюдается, то во втором имеет место явное преимущество изделия AMD более чем на треть.

В игровых тестах с применением тех же технологий лидерство Athlon 64 еще более очевидно. Следует заметить, что в MDK2 используется OpenGL, а в Unreal Tournament — DirectX.

Вычисления с плавающей точкой

В тесте на сжатие звука победитель не выявился, а вот при обработке видео Athlon 64 явно уступает основному конкуренту. Видимо, именно для реализации алгоритмов видеосжатия нужна быстрая кэш-память. Но по мере выпуска более совершенных и ресурсоемких версий кодека отставание процессора AMD сокращается. Athlon обладает более быстрым, по сравнению с Pentium 4, вычислительным блоком и более медленной кэш-памятью, что и приводит в среднем к паритету на реальных программах. Сейчас для видеокодека большую роль играет производительность, так как он должен работать в реальном времени, чтобы успевать за поступающим на вход видеопотоком. По мере роста производительности процессоров будет возрастать и сложность алгоритмов видеокомпрессии. Количество же обрабатываемых ими данных вряд ли изменится, стандарты здесь уже устоялись. Другими словами, с течением времени кодеки будут все более требовательны именно к вычислительной производительности. И в этом смысле в плане отдаленной перспективы Athlon 64 выглядит достаточно привлекательно.

Там же, где от системы не требуется экстремальной производительности, а именно в офисных приложениях, программах для веб-дизайна и т.п., лидируют процессоры Intel с отрывом примерно в 15%. Впрочем, подавляющему большинству пользователей компьютера именно это и нужно. Но поскольку речь идет о наиболее производительных компьютерах с архитектурой x86 (в нашей стране зачастую вообще о компьютерах), то следует уделить внимание и той сфере, где компьютеры исторически нашли свое первое применение, — научным вычислениям.

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

Каждый раз, когда речь заходит о процессорах AMD, возникает вопрос, а оправдывают ли они свой рейтинг? Ведь ни для кого не секрет, что хотя официально рейтинг измеряется относительно процессора Athlon, но при сравнении неявно подразумевается какой-нибудь Pentium. А рейтинг тем временем превосходит реальную тактовую частоту уже более чем в 1,5 раза. Что ж, на этот вопрос, пожалуй, следует ответить «да». По крайней мере, провальные результаты Athlon 64 показал только в тесте на скорость последовательного доступа к памяти, но это еще не реальная задача. Конечно, такой доступ присутствует в той или иной мере в любой программе и почти в любом алгоритме. Но именно это и приводит к тому, что, обладая существенно более мощным ядром, Athlon 64 не выбивается в явные лидеры. Отставание процессора AMD от изделия Intel, как правило, не превышает 20%, в то время как Intel нередко отстает на 30% и более, а то и вообще в несколько раз.

Целочисленные вычисления

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

Впрочем, все, что написано выше, еще не дает полного представления о достоинствах процессора AMD. Ведь проводилось сравнение 64-разрядного процессора с 32-разрядным, притом на 32-разрядных приложениях. То есть совершенно очевидно, что в проведенных тестах потенциал процессора был раскрыт далеко не полностью, включая как возможность прямой адресации более 4 Гбайт виртуальной памяти (это примерно соответствует 1 Гбайт оперативной — не так уж много), так и использования дополнительного набора регистров. Последнее должно хотя бы частично преодолеть слабое место архитектуры x86. Для сравнения напомним, что в архитектуре IA-64 регистров общего назначения 128, тогда как в x86 только 8. В условиях конвейерной обработки данных большее количество регистров должно привести к более эффективному распараллеливанию и, следовательно, росту производительности.

Еще недавно будущее архитектуры x86—64 (AMD-64) вызывало опасения. Известно, что около 80% компьютеров собираются на базе процессоров Intel, и уже был прецедент, когда впервые введенный в архитектуру x86 дополнительный набор векторных команд для обработки чисел с плавающей точкой 3Dnow! не стал стандартом именно из-за противодействия со стороны этой корпорации. А программистам неинтересно писать программы, которые смогут работать только на менее чем 20% компьютеров. Впрочем, этим летом Intel признала, что будет выпускать 64-разрядные процессоры с набором команд x86, и этот набор команд совместим с AMD-64. Это сразу превратило процессоры конкурента из «темных лошадок» в перспективные изделия.

Все наши тесты проводились под управлением ОС компании Microsoft, однако ими многообразие программного обеспечения не ограничивается, есть ведь еще и *nix. Если 64-разрядная версия Windows на момент написания статьи еще находится на стадии тестирования, то 64-разрядные клоны Unix, в частности Linux, уже давно существуют. А единственной средой для 3D-графики там является OpenGL, которая работает на процессорах AMD на треть быстрее, чем на Intel. Так что всем, кому нужно более 1 Гбайт оперативной памяти, кто собирается пользоваться операционными системами, альтернативными Microsoft, кто хочет иметь компьютер завтрашнего дня, есть резон остановить свой выбор на Athlon 64. Да и у остальных пользователей компьютеров серьезных противопоказаний этому нет.

Редакция благодарит российские представительства компаний AMD, Intel, ASUSTeK и Albatron за предоставленное для проведения тестирования оборудование.

737