Šta je novo?
Mnogi će pomisliti da je za AMD trka po pitanju procesorske arhitekture gotova, ipak ne mislimo da je tako, samo je nekako razvoj procesora dogurao do svojih limita. Svedoci smo toga da i veliki Intel iz godine u godinu sve više ulaže u razvoj mikroarhitekture, proizvodnog procesa, a pomaci u odnosu na prethodne generacije baš i nisu preterano veliki.
Definitivno je došlo do potrebe za promenom pristupa u dizajnu kako samog hardvera, tako i softvera. Sa svakom novijom generacijom APU-ova, ovakav koncept sve više dobija na smislu. Dizajn novog procesora zahteva određene ciljeve koji moraju biti ispunjeni, a u ovom slučaju to su:
Brža CPU jezgra
Heterogena sistemska arhitektura
Igračka platforma
Adekvatna potrošnja uz mogućnost konfigurisanja
U početku upotrebna vrednost ovakvog pristupa je bila u tome da se omogući solidna integrisana grafika, znatno bolja nego što je bila na matičnoj ploči, ali i dalje slabija od high-end diskretnih GPU-ova, uz nisku potrošnju i visok stepen integracije. Sledeći korak je softverska optimizacija, OpenCL, direktan pristup CPU memoriji putem FCL (Fusion Compute Link-a), ali ne i HSA. U međuvremenu, GPU je evoluirao iz VLIW5 kod prve generacije u VLIW4 kod druge i treće generacije APU-ova, a dodate su i IOMMU funkcije za FCL, kao i naprednije iskorišćenje TDP budžeta i turbo mod. Heterogena sistemska arhitektura je naredni korak, koji stiže sa Kaverijem.
Ovakav pristup omogućuje daleko efikasnije programiranje GPGPU aplikacija, ali i znatno bolje performanse zbog efikasnije koherencije podataka. Dakle, sam integrisani GPU više ne služi samo za „light gaming“, već ima izvesnu upotrebnu vrednost, a sa HSA bi trebalo znatno da dobije na značaju.
Što se tiče procesorskog dela, ako se osvrnemo unazad, videćemo da je AMD već nekoliko godina imao svoje „Tick“ i „Tock“ faze u razvoju procesorskih mikroarhitektura. Nakon relativno uspešne K10, odnosno K10.5 (Phenom II) mikroarhitekture, predstavljen je kontroverzni Bulldozer, koji je potpuna revolucija kada je u pitanju dizajn višejezgarnih procesora, ali sa druge strane je predstavljao potpuni fijasko ako posmatramo odnos performansi po watt-u. Podsetićemo da su ključne osobine Bulldozera bile takozvana modularna arhitektura, gde dva integer jezgra dele jedan FP blok (jedinicu za rad sa pokretnim zarezom), ali je i front-end deljen u koji spadaju L1 instrukcijski keš, prediktor grananja, dekoderi i reorder buffer, odnosno macro-op retirement queue (red makrooperacija koje trebaju da budu izvršene). Ovakav pristup je trebalo da da dobre rezultate kada je potrebno spakovati veći broj jezgara koja mogu da izvrše veliki broj paralelizovanih operacija.
Skaliranje sa jednog na dva thread-a u modulu je bilo dosta dobro ukoliko se ne koriste intenzivno deljeni FPU resursi. Ubrzo nakon predstavljanja Bulldozera, predstavljen je i Piledriver, ali premijerno unutar Trinity APU-a, a zatim i u Vishera FX procesorima i Opteronima. Piledriver je svojevrsni update BD arhitekture, a ono što je doneo ovaj „refresh“ jeste nešto niža potrošnja i nešto više performanse i klok potencijal, koji je uz prihvatljivu cenu učinio CPU-ove i APU-ove zasnovane na ovim jezgrima prilično popularnom kupovinom. Ipak, u High – End segmentu, AMD nije mogao da bude konkurentan, izuzev na tržištu servera gde njihova specifična G34 platforma dozvoljava korišćenje MCM – Multi Chip Modula sa praktično dva „Vishera“ chipa. Ono čime se AMD borio uz ovu platformu je CC NUMA sa masivnim memorijskim protokom, kao i veliki broj socket-a u jednoj matičnoj ploči. 64 Piledriver jezgra/thread-a je uglavnom davalo isto ili više nego 32 Intel Sandy Bridge E/EX jezgra, mada je to sad stvar čiste računice, gde u komplikovanu jednačinu ulaze i odnosi performansi, potrošnje, kao i specifične primene. Zbog specifične keš arhitekture, kao i produbljenih TLB buffer-a Piledriver se pokazao kao zaista dobro rešenje kada je u pitanju visoko paralelizovana obrada, veoma velikih količina podataka. Međutim, rad sa malim petljama je relativno spor, kao i na Bulldozer-u zbog sporog upisa u L1 i L2 keš, kao Write Through L1 – Data keš arhitekture.
Treća bitna novina je sam GPU, koji je baziran na GCN v1.1 grafičkoj arhitekturi. GCN sam po sebi je projektovan da bi omogućio bolje performanse kada je u pitnaju GPGPU, odnosno pokretanje najrazličitijih algoritama preko GPU-a. Za razliku od VLIW4, GCN koristi SIMD arhitekturu, što u prevodu znači Single Instruction Multiple Data. Dakle, slično kao i kod AVX instrukcija u procesoru, GPU koristi svoje instrukcije i instrukcijski set preko kojeg uz pomoć jedne instrukcije vrši izračunavanje nad nekakvim vektorom podataka. VLIW sa druge strane koristi takozvane wavefront-ove, koji u jednom prolazu izračunavaju sve što je GPU „pokupio“ u svoje registre. Ovakav pristup je dobar za grafiku, ali ne i za algoritme koji mogu da imaju raznolike data-patterne.
AMD uvodi termin „compute core“, koji uz korišćenje heterogenog procesiranja CPU i GPU jezgra tretira na isti način. Uz kombinovanje procesora i grafičkog procesora, omogućeno je zbirno sagledavanje performansi.
Tehnički gledano, svako od osam „računskih jezgara“ može da procesira po jedan thread + CPU koji je u stanju da isprocesira još četiri dodatna thread-a, čime dolazimo do računice od 12 thread-ova.
Naravno, operativni sistem neće videti 12-jezgarni CPU ili procesor sa 12 thread-ova, ali ukoliko koristite softver koji je pisan u OpenCL-u 2.0 ili nekom drugom SDK (Software Development Kit) koji koristi HSA, imaćete na raspolaganju 12 softveskih niti, odnosno thread-ova. Na kraju krajeva, jedno GCN jezgro daje više SP GFLOPS-a od jednog Steamroller modula, tj. dva jezgra, 92 GFLOPS-a, dok CPU jezgro daje samo 64 GFLOPS-a uz korišćenje FMA3 instrukcija.
Dodaj komentar