| Hardver | Procesori | AMD Phenom II X6 1100T
Procesori

AMD Phenom II X6 1100T


Analiza performansi

 

Testirajući AMD platformu nasuprot Intel, stiče se utisak da klok za klok, Thuban jezgro ima više sirove snage, ali u prosečnom slučaju je manje iskoristi. Samo u radu sa visoko optimizovanim kodom šestojezgarni K10.5 na istom taktu ostavlja iza sebe modernu Nehalem arhitekturu. Mnogi se pitaju, kako to da AMD sa šest jezgara uspeva jedva da se nosi sa Intelom sa 4 jezgra. Maksimalni broj instrukcija po ciklusu je za K10.5 i Nehalem praktično isti, klok za klok i po jezgru. Oba procesora imaju po 3 ALU i 3 FPU jedinice i sposobna su da izvrše do 4 DP FP SIMD (Double Precision FP Single Instruction Multiple Data operacije) po ciklusu, odnosno 8 SP SIMD (Single Precision).

Kako je širina SSE registara 128-bita, a ima ih ukupno 8, AMD K10.5 i Intel Core i7 su sposobni da izvrše po dve 128-bitne SSE aritmetičke operacije nad ukupno 4 SIMD registra. FPU jedinica se sastoji iz 3 bloka. FADD,  FMUL i FSTOR. Šesti, Sedmi i Osmi registar služe za smeštanje međurezultata i rezultata, kao i za smeštanje skalarnih promenljivivih i konstanti koje služe za množenje ili sabiranje sa vektorima.

FADD izvršava operacije sabiranja realnih brojeva, FMUL izvršava operacije množenja, a FSTORE vrši konverziju, upis, čitanje i pomeranje podataka iz registara u memoriju i u registre.

U jedan 128-bitni SSE registar staju dva DP – Double Precision broja. To su realni brojevi koji su zapisani sa 64-bitnom preciznošću prema IEEE standardu. SIMD instrukcija, samo ime kaže – Single Instruction Multiple Data, radi aritmetičku operaciju nad dva 128-bitna registra, koji sadrže po dva 64-bitna DP podatka ili čak po četiri 32-bitna SP podatka koji su smešteni u spakovani niz, t.j. vektor. Zbog toga se ove operacije još zovu i vektorske operacije. K10.5 jezgro je sposobno da izvrši jednu 128-bitnu operaciju sabiranja (ADD) i jednu 128-bitnu operaciju množenja (MUL), kao i jednu Load/Store po ciklusu.

 

Single_Precision

 

SSE2 i SSE3 koji su podržani od strane Intelovih i AMD-ovih procesora mogu uz pomoć jedne SIMD instrukcije da izvrše operaciju nad dva operanda. Dakle, maksimalan broj operacija uz pomoć SIMD instrukcija je 4 DP operacije. Odatle imamo teoretski maksimum od 4 DP x BROJ JEZGARA x BROJ GHz, daje broj GFLOPS-a u LinX-u. GFLOPS znači (Giga Floating Point Operations Per Second).

Kod LINPACK -a  koji je visoko optimizovan, razlika između X6 procesora i i7 je drastična u korist X6. LINPACK je kod koji je tako napisan da se izvršava paralelno unutar samog jezgra i on je jezgro poznatog LinX burn-in testa, kao i Intel BurnIn testa. LINPACK je u suštini softverska biblioteka koja služi za izvršavanje numeričkih operacija sa matricama. Matrične operacije se lako mogu paralelizovati, pa odatle imamo maksimalno iskorišćenje procesorskih resursa. Inicijalno, Linpack je napisan u Fortranu i koristio se za proračune na super-računarima 70-tih i 80-tih godina. Linpack generalno služi za merenje performansi procesora u radu sa pokretnim zarezom (Floating Point). Rešavanje sistema lineranih jednačina je jedna od najčešćih operacija koja se izvršava u HPC računarstvu. (High Performance Computing). Na performanse u Linpack-u značajno utiče i memorijski protok.

U ovakvim scenarijima gde je po threadu iskorišćenje procesorskog pipeline-a maksimalno, trikovi poput HyperThreading-a ne pomažu. Zapravo, čak i odmažu, zbog prljanja L1 cache-a i povećanja „miss rate-a“. Doduše, u novijim verzijama LinX-a nema pada performansi sa uključenim HT-om, ali nema ni dobitka jer nema gde da se dobije više. Ako Core i7 na 2.93 GHz daje 38,43 GFLOPS-a, teoretski on može da isporuči 4DP x 2,93 x 4core  = 46.88 GFLOPS-a. Iskorišćenje ne može biti 100% zbog pristupa memoriji, ali ovde se radi o nekih 83% iskorišćenja procesorskih resursa. Paralelizam instrukcija u samom proceosoru –  IPC je nekih 2.5-2.6 SSE instrukcija po ciklusu, od kojih su kao što smo naveli ranije u tekstu maksimalno dve aritmetičke i jedna Load/Store.

 

K10_Tnehalem_T

Klik za veću sliku

 

S obzirom da je maksimalni dotok podataka iz L1 keša dva 128-bitna load-a (ukupno 256-bita), t.j. 32-bajta, iskorišćenje procesorskih resursa je već blizu maksimuma. Ovo je dovoljno da „nahrani“ dve 128-bitne SSE jedinice u svakom procesorskom ciklusu.

Zbog toga trikovi kao što su HyperThreading nemaju šta više da iskoriste. Popunjavanje pipelinea dodatnim tredom ne uspeva, jer je sve već popunjeno. Zbog toga dodavanje još dva fizička jezgra pravi veliku razliku. Tako npr. Phenom II X6 1075T daje 58,15 GFLOPS-a na skoro istom taktu kao i Core i7 930. Teoretski 1075T može da isporuči 72 GFLOPS-a na 3 GHz, pa je iskorišćenje procesorskih resursa u ovom slučaju nekih 81%. Ovo iskorišćenje jeste nešto manje nego za i7, ali ne zbog toga što po jezgru K10.5 arhitektura ima manju FP snagu, nego zato što skaliranje performansi sa 4 na 6 jezgara često nije linearno. Za 50% dodatih resursa, dobija se <50% performansi.

U prosečnom slučaju Core i7 po jezgru ima oko 20-25% veći broj instrukcija po ciklusu IPC, pa se može reći da i7 ima veće prosečne performanse od K10.5. U multithread režimu prednost koju donosi Nehalem arhitektura se anulira većim brojem fizičkih jezgara kod X6 procesora. Tako npr. u većini rendering primena, Thuban jezgro će dati identične, za nijansu slabije ili nešto bolje performanse nego i7. Najveća razlika je primećena u dobro optimizovanom PovRAY renderingu. Analizirajući performanse PovRAY programa, uvideli smo da on koristi najveći broj instrukcija po ciklusu i da je najbliži tzv. peak performance-u koji mogu da isporuče današnji procesori.

Video kompresija je jedan od čestih primena multicore procesora. U zavisnosti od vrste algoritma koji se koristi za video kompresiju, zavisiće i performanse. Ukoliko algoritam za video kompresiju ima veći broj neporavnatih memorijskih pristupa (unaligned memory acess), peformanse će biti manje, a prednost na Intelu će biti veća. Ukoliko je kod koji se izvršava „ortogonalan“, iskorišćenje procesorskih resursa će biti bliže maksimumu i razlika će biti veća u korist Phenom II X6 jezgara.

Primer visoko optimizovanog izvršavanja je i program za enkripciju fajl sistema – True Crypt. Ovaj softver koristi standardne algoritme za kodiranje podataka – AES (Advanced Encryption Standard), Twofish i Serpent. Algoritmi za enkripciju podataka koriste instrukcije za rad sa celim brojevima i maksimalno iskorišćavaju hardver unutar procesora. Broj izvršenih instrukcija po ciklusu na K10.5 iznosi preko 2 u ciklusu, po jezgru. AES konkretno radi sa matricama podataka logičke XOR operacije, ciklične bit-shift kao i rotacije. Ove operacije se veoma brzo izvršavaju unutar integer ALU jedinica, kojih K10 i Core i7 imaju po 3 po jezgru. Iskorišćenje od 2.2 IPC predstavlja veoma visok IPC faktor, pa nema dobiti od HyperThreadinga. Najveća dobit je od dodatnih izvršnih resursa, odnosno dodatnih jezgara. Zbog toga je razlika velika u korist AMD-ovog hexa-core rešenja.

U većini memorijski zahtevnih testova Core i7 će nadmašiti Phenom II X6, kao i pri izvršavanju koda koji ostavlja dovoljno „šupljina“ u pipeline-u koje uspešno može da popuni dodatni thread i fleksibilniji Out Of Order scheduler. Ovu razliku upotpuniće postojanje dodatna dva jezgra.

Nešto slabije single thread performanse K10 jezgara nadopunjuje prilično agresivan Turbo mod. Kod Phenom II X6 1100T tri jezgra se automatski „klokuju“ do 3.7 GHz pri single thread i dual thread workload-ima. U većini igara ovaj procesor davaće nešto malo bolje performanse nego Phenom II X4 970 koji inače radi na 3.5 GHz. Ipak, smatramo da je nepotreban trošak kupovina X6 Thuban jezgra kao gaming procesora.

Danas se računari sve više koriste za online gaming, a mnogo je sajtova koji zahtevaju značajne resurse, pa smo u bateriju testova uvrstili i browser performance testove. Primetili smo da se AMD Phenom II X6 veoma dobro nosi sa Core i7 pri izvršavanju HTML5, Flash10, AJAX i JavaScript baziranih web aplikacija. Flash10 je multithreadovan, pa daje nešto bolje performanse na X6 procesoru, a dobro koristi i prednosti HyperThreading-a na Intelovim procesorima.

Baterija gaming testova je još jednom pokazala da su već tri jezgra sasvim dovoljno dobra za glatko pokretanje velike većine igara. Ipak, gaming engine „STALKER The Call Of Pripyat“ je pokazao izvesnu prednost u frame-rate-u  na većem broju jezgara, dok Dirt 2 daleko bolje koristi broj jezgara koji je jednak stepenu dvojke, što nije prvi put da se dođa. Bilo je ranije igara koje su sporije radile na X3 procesorima, nego na X2. Verovatno će u budućnosti patch-evi za takve igre rešiti ovakve probleme.

 

Đ

Đorđe Kovačević

Dodaj komentar

Kliknite ovde da biste poslali komentar