AMD TrueAudio, és ami mögötte van

Problémák és megoldások

A dedikált hangfeldolgozók eldobása az előző évtized első felében nem tűnt rossz koncepciónak, legalábbis látszott, hogy az iparág ezt eléggé átgondolta. A processzorok támogatták az olyan SIMD utasításkészleteket, mint például az SSE, emellett az IPC is folyamatosan nőtt. A Microsoft értékelte ezeket a törekvéseket, így gyorsan bekerült a Windowsba egy olyan rendszer, ami hangfeldolgozásra hasznosítja az SSE erejét. Az Intel ezzel párhuzamosan kidolgozta a HDA-t (High Definition Audio), ami specifikálta a megfelelő alapot az AC’97 szabvány leváltására. Az átállás elég gyorsan megtörtént, amire a Windows Vista is rásegített a hardveres gyorsításhoz szükséges alap kivégzésével, de erről az előző oldalon már írtunk.

Felmerült azonban számos nem várt probléma, amit eredetileg tényleg nem lehetett látni, tehát itt nem érdemes felelőst keresni. A PC-s játékok gondja alapvetően ott kezdődik, hogy a hangot a központi processzornak kell számolnia, ami ugye az előbbi bekezdésben tárgyalt koncepció volt. Itt rögtön adódik a kérdés, hogy ha ezt akarták, akkor mitől lett mára rossz a rendszer? Elsősorban azért, mert a CPU-k nem úgy fejlődtek, ahogy azt eredetileg elgondolták. Az egymagos processzorok falba ütköztek, így a többmagos irány lett az új jövőkép. Ez rögtön azt eredményezte, hogy a processzormagok teljesítménye csak lassan növekedett, így azok sokszorosításával lehetett extra sebességhez jutni. Ma már ez 4-8 magos processzorokban teljesedik ki.

Lényeges probléma, hogy a hangfeldolgozáshoz gyakorlatilag meg kell harcolni az erőforrásért megannyi más folyamattal. Ráadásul a programozók legnagyobb gondja nem a processzor maga, hanem a rengeteg piacra dobott modell, melyek teljesítménye nagyon eltérő. A hangok feldolgozása esetében kiemelten fontos, hogy meglegyen a megfelelő erőforrás az adott feladat számára. Amennyiben ez nincs meg, akkor rendkívül rossz élményben részesül a felhasználó, mivel véletlenszerűen pattoghat, illetve kihagyhat a rendszer. A fejlesztők tehát mindig arra törekszenek, hogy ezeket elkerüljék, vagyis minimalizálják a hangok számításának erőforrásigényét, hogy a piacon található összes processzor megbirkózzon a feladattal.

Az sem kedvezett a fejlesztőknek, hogy a homogén többmagos processzorok sem olyan irányba fejlődnek, ami megfelelne a hangfeldolgozásnak. Az új lapkákban egyre több szintre lettek osztva a gyorsítótárak, emellett megjelent a méretes megosztott cache, aminek sajnos relatíve magas is a késleltetése. Ez a legtöbb folyamat esetében nem előnytelen, de a hangok feldolgozása kis puffereket igényel, tehát nem kell méretes gyorsítótár, viszont fontos, hogy az adatok elérése nagyon alacsony késleltetésű legyen.

Az elmúlt években felmerült az a lehetőség, hogy a grafikus processzor ideális lenne a hangok feldolgozására. Erre számos tanulmány készült, így ez még ma is egy lehetséges alternatívát jelent, ám az elmélet gyakorlati megvalósítása nem mindig ad megfelelő eredményt. Sajnos a GPU pont annyira alkalmas a hangfeldolgozásra, mint a CPU: megoldja, de nem lesz hatékony. Emellett a GPU-architektúrákat tipikusan adatpárhuzamos feldolgozásra tervezik, vagyis még kevésbé számít a késleltetés. A hangfeldolgozás inkább amolyan fa struktúrára hasonlít, ráadásul ezek a játékokban több részre is bomlanak a mixelés előtt, tehát a GPU önmagában nem reális alternatíva.


[+]

Újabban az APU kezdte el érdekelni a kutatókat, hiszen a hangfeldolgozásnak vannak olyan részei, amelyekhez a grafikus processzor ideális, de olyanok is, amelyek inkább a központi processzoron futnak jól. Ez az új generációs konzolokon értékelhető alternatívát jelent, de PC-n ma még nem lehet megvásárolni olyan hardvert, ami megfelelne erre a modellre. Még ha lesz is, akkor is várni kell a terjedésre, tehát az APU-n feldolgozott hangzásvilág egyelőre a távoli jövő zenéje a PC-kben. Az Xbox One és a PlayStation 4 sokkal kedvezőbb helyzetben van, így ezeken a platformokon esetleg hamarabb láthatunk igazi innovációt.

Minden rosszul alakult

Sajnos ma kijelenthető, hogy a körülmények áldozata lett a piac, ráadásul a processzorok fejlesztésénél a mérnökök abszolút irreleváns tényezőként tekintenek a hangfeldolgozásra, mivel elég eltérő igényekkel rendelkezik ahhoz képest, mint amire általánosan szükség van, hogy a jellemző programkódok hatékonyan fussanak. Egy mai CPU tehát már nem ideális hardver a hangszámításra, és ezt a fejlesztők a minőség visszafogásával kezelik, várva valami jobb koncepcióra a hangzásvilág feljavítása szempontjából.

A korlátok a gyakorlatban is érezhetők, hiszen az aktuális konzolok nem erősebbek, mint a PC-k, viszont egyetlen fix hardverre épülnek, amire sokkal jobban lehet alapozni, így előre kiszámolható, hogy mekkora erőforrás használható fel a hangok számítására. PC-n egyszerűen figyelembe kell venni a nagyon olcsó processzorokat, és ez limitálja a lehetőségeket. Az új generációs konzolok még nagyobb pofont visznek majd be ezen a területen, mivel erősnek számítanak, és a fix hardver előnyével gyakorlatilag a fejlesztők előtt igen sok lehetőség adódik. Az AMD nyilván látta, hogy milyen fejlett lesz az Xbox One és a Playstation 4, így erre valahogy válaszolni kell PC-n is. Gyakorlatilag ezért született meg a TrueAudio technológia, ami egy dedikált hangprocesszornak tekinthető az AMD Radeon R7 260X, illetve R9 290 és 290X jelzésű VGA-k által használt cGPU-kban.


[+]

Az alapokat az AMD a Tensilica HiFi EP DSP-re építi, ami 24 bites RISC architektúrára alapoz. Ez a piac egyik legkedveltebb megoldása, főleg nagyon egyszerű programozhatósága, alacsony fogyasztása és komoly skálázhatósága miatt. Az AMD a 800 MHz-es órajelen üzemelő TrueAudio hangprocesszorba több HiFi EP DSP-t épített, de arról a cég nem nyilatkozik, hogy pontosan mennyit. Információink szerint három darab került a rendszerbe, és ilyen felépítés mellett a TrueAudio hardveres blokkja számít a legerősebb hangprocesszornak a piacon. Az szerencsére publikus, hogy mindegyik DSP 32-32 kB-os utasítás és adat gyorsítótárat, valamint 8 kB helyi memóriát kap. A fejlesztés a HiFi2-EP utasításkészletet támogatja, emellett kezeli az Xtensa szimpla pontosságú lebegőpontos feldolgozást, a dupla pontosságú rásegítést, illetve helyet kapott pár transzcendens utasítás is.

A licencelt DSP-k felhasználásán túl az AMD már jelentősen belenyúlt a rendszerbe, ami kapott egy 384 kB-os megosztott gyorsítótárat, amelynek 8 kB-os bankjai egymástól függetlenül döntenek a konkurens eléréséről a DSP-k és a DMA szempontjából. Ez garantálja lényegében a lehető legkisebb késleltetésű hozzáférést az adatokhoz. A TrueAudio technológiára építve a fejlesztők maximum 64 MB-os területet foglalhatnak le a VRAM-ból (aminek a tartalma le lesz tükrözve a rendszermemóriába), emellett támogatott a scatter és gather memória-hozzáférés, illetve az AMD egy egészen speciális streaming DMA motort fejlesztett a lehető legjobb teljesítmény érdekében. Utóbbi két funkció nagyon fontos, mivel a TrueAudio hangprocesszornak a lehető legkisebb késleltetés mellett van szüksége a hangmintákra a gyors feldolgozás biztosítása érdekében.

A cikk még nem ért véget, kérlek, lapozz!

Hirdetés

SENIOR PHP programozót keresünk

PR Üzleti logikához és ERP rendszerhez igazított egyedi e-kereskedelmi megoldások, webáruházak fejlesztéséhez SENIOR PHP programozót keresünk

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés