Резултати
По традиция при изследването на новите архитектури започвам с разглеждане на производителността на паметта, както и с изчислителните тестове на AIDA64.
Много странни неща се случват с кеша на Buldozer. При L1 скоростта на четене нещата са на нивото на Thuban и Deneb, което значи че поне при четене чипът не страда от липсващия АГУ. При записът нещата обаче са драматично по-зле, което може би се дължи на write thru политиката. При L2 пък е точно обратното – при записа нещата са горе-долу добре, макар и малко под нивото на предходното поколение, четенето обаче е над два пъти по-бавно. Това може би се дължи на обслужването на две нишки от кеша. А може би има по-генерален проблем. Единствения проблясък е при L3 кеша – записа е на нивото на старата архитектура, но четенето е значително ускорено, цели 2,5 пъти. Няма данни какво се е случило с L3 кеша, но на пръв поглед изглежда, че 4-те банки L3 кеш работят поотделно и са свързани през комутираща среда. Така могат да запазят 64-битовата шина и да подобрят значително пропускателната способност.
Промяната в L3 кеша, заедно с промените по контролера на паметта са отразили доста благотворно на пропускателната способност на паметта. Скоростите на четене и запис са скочили с 50% и изглежда в момента скоростта на запис опира в производителността на L3, а скоростта на четене в производителността на L2 кеша. Трябва да се има предвид, че теста на AIDA е еднонишков, което прави резултатите още по-ценни – така на практика всяко от новите ядра може да използва 50% повече пропускателна способност, което предвид възможността за работа с два потока е доста важно.
При латентността обаче нещата не стоят изобщо добре. Всички латентности са сериозно увеличени, като особено тежко е положението с L2 кеша, чиято латентност на практика е удвоена! Честно казано не мога да си представя какво са искали да постигнат от AMD, но от много години не съм наблюдвал толкова бавен кеш. На практика, заедно с намалената пропускателна способност е много съмнително каква и дали изобщо има полза от увеличения обем на L2 кеш паметта.
За разлика от AIDA64, SiSoftware SANDRA използва многонишков алгоритъм за тестване на паметта. Като цяло обаче резултатите не са много далеч – има сериозно подобрение на пропускателната способност на паметта, едва ли не равняващо се на трети канал, леко повишна латентност на достъпите до паметта и огромно забавяне на L2 кеша.
Синтетичните тестове на AIDA64 са особено интересни, тъй като дават представа за някои специфични особености на архитектурите. В добавка последните версии на програмата са оптимизирани и за въведените в Bulldozer инструкции XOP, AVX и FMA4. CPU Queen разрешaва „задачата на цариците”, при която трябва да се намери колко царици могат да се разположат на поле с дадени размери. Тестът основно зависи от скоростта на предсказване на разклоненията и ефективността на многопоточната работа на даден процесор. И тук е първата неприятна изненада – Bulldozer не супява дори да победи Thuban. В случая трудно може да се каже коя от двете възможности е причината. CPU PhotoWorkxx симулира обработка на изображения, но тестът силно се влияе от паметта. В този случай FX моделите се представят в много по-добра светлина. Интересен е слабия резултат на Thuban предвид факта, че тестът е многопоточно оптимизиран, но изглежда наличната памет просто не е достатъчна за 6-те ядра и те на практика губят производителност заради конфликтите помежду си за достъп до ресурси. Подобренията във FX определено са от полза. CPU AES пък тества производителността при крипитиране. Тук нещата са ясни, предвид използването от теста на AES-NI инструкции при Bulldozer.
CPU Zlib симулира архивиране на данни на базата на отворената библиотека zlib,като тестът зависи както от броят ядра, така и от производителността на паметта. Bulldozer отбелязва още една победа, макар и с минимално предимство, поне ако го сравняваме с досегашния флагман на компанията – Phenom X6 1100T. Разликата спрямо 980Х, който е настощият 4-ядрен върхов модел е доста по-сериозна. Хеширането на данни в CPU Hash теста е още една задача, която видимо се отдава на моделите от серията FX. Това не е учудващо предвид оптимизацията на теста за XOP и AVX. При все това разликата на FX-8150 спрямо 1100T не е особено голяма, едва 10-тина %. Сравнението му с Х4 980 показва нещата далеч по-бляскаво, като разликата е солидните 50%. Симулираният 6100 също изпреварва 980. FPU VP8 симулира прекодиране на видео с помощта на кодека VP8, при което натоварването вече се прехвърля към операции с плаваща запетая. Тъй като тестът е оптимизиран за ММХ, SSE2 и SSSE3, Bulldozer не разполага с някакви предимства от допълнителните си набори инструкции и се налага да разчита единствено на силата на конпорцесорните си блокове. А това както виждаме не е достатъчно да победи Phenom X6, който разполага с двойно повече SSE ресурси. И все пак изоставането е само от порядъка на 10%, което говори че ефективността на новите блокове е значително повишена спрямо предишното поколение.
Последната група тестове натоварва процесорите с чисто изчислителни задачи, като изчисляване на фрактали, тестващи производителността при работа с единична, двойна и разширена точност. Двата теста за единична и двойна точност, FPU Julia и FPU Mandel, са оптимизирани освен за различните версии на SSE, така и за AVX и FMA наборите от инструкции. Това обаче не е достатъчно на Bulldozer да се победи с Phenom X6. Тук се проявява една от слабостите на дизайна – използването на AVX не предлага активиране на допълнителни ресурси, тъй като двата 128-битови FMAC блока работят като един 256-битов, а единствената полза изглежда е от използването на по-малко на брой инструкции, респективно освобождаването на част инструкционните слотове и опростяването на работата на диспечерите. FMA4 пък би бил от по-сериозна полза еднствено за ситуации, при които голяма част от кода изпълнява събиране с умножение, което явно не е се проявява при тези два теста на AIDA. Сравнението дори с Х4 980 не е особено благосклонно, като разликата е от порядъка на 20-25% – съвсем не лошо за нов 4-ядрен процесор, но е трагично за претендиращ за 8-ядрен вариант. Накрая фрактала SinJulia използва разширена точност, при което никой от екзотичните инструкциони набори на Bulldozer не му е от полза, тъй като се работи с прост х87 код. Респективно изоставането в процентно отношение спрямо 1100Т се увеличава, като производителността се доближава по-близо до Х4 980. И все пак трябва да се отбележи, че във всички ситуации новия дизайн показва увеличена ефективност на работа.
Да извършим кратко обощение на тази група тестове – по всичко изглежда, че Bulldozer ще блести в ситуации, които се опират най-вече в пропускателната способност на паметта и в силно паралелизиран целочислен код, както и когато се използват допълнителните му инструкционни набори, особено AES-NI. При по-традиционен код или такъв, който работи преди всичкo с кеш паметите или при задачи с плаваща запетая, които са оптимизирани за SSE обаче поведението на новия процесор много повече прилича на това на подобрен и то доста сериозно на смета 4-ядрен процесор, както и го описахме при разискването на архитектурата му, отколкото на представяния от маркетинговия отдел на АМД „първи истински 8-ядрен процесор“. В редица случаи новия модел отстъпва макар и обикновено не с голяма разлика на Phenom X6, което не е учудващо, предвид значително по-сериозните ресурси, с които разполага по-стария модел.