Ar verta atsinaujinti į AGESA 1.0.0.4 ir ar „ASUS ROG Crosshair VIII Impact“ yra inžinerinis šedevras?
Spartos testai su AGESA 1.0.0.4 (gamykliniai BIOS nustatymai)
Panašu, kad atnaujintas AGESA mikro kodas nesugebėjo pridėti jokio spartos prieaugio nei viename iš testų. Atvirkščiai. Didesnė dalis testų vidurkių nežymiai suprastėjo. Tai galioja tiems patiems „Winrar“ ir „7-Zip“ testams, taip pat keliomis dešimtimis taškų sumenko „Cinebench r20“ (multicore) rezultatai, iš esmės nuo vienos iki keletos sekundžių buvo prarastos atliekant visus modeliavimus. Su AGESA 1.0.0.4 stebime kiek didesnę (+1 fps) „Far Cry 5“ vidutinę spartą, tačiau tokį skirtumą derėtų įvertinti ne daugiau kaip paklaidą. Sistemos energijos sąnaudos atnaujinus mikro kodą nepakito.
ASUS ROG Crosshair VIII Impact (BIOS 1001/ AGESA 1.0.0.3ABBA) + G.SKILL (Trident Z 2x 8 GB 3600 MHz CL16-16-16-36) | ASUS ROG Crosshair VIII Impact (BIOS 1201/ AGESA 1.0.0.4) + G.SKILL (Trident Z 2x 8 GB 3600 MHz CL16-16-16-36) |
|||||
UCLK: FCLK santykis | 1800:1800 MHz | 1800:1800 MHz |
||||
Testas |
1-as bandymas | 2-as bandymas | 3-ias bandymas | 1-as bandymas | 2-as bandymas | 3-ias bandymas |
Cinebench r20 (single core) | 511 | 508 | 507 | 510 | 511 | 509 |
Vidurkis | 509 | 510 | ||||
Tipinės el. sąnaudos |
~93 W | ~93 W | ||||
Cinebench r20 (multi core) | 4827 | 4845 | 4820 | 4804 | 4812 | 4787 |
Vidurkis | 4831 | 4801 | ||||
Tipinės el. sąnaudos |
~155 W | ~155 W | ||||
Corona rendering (multi core) | 01:48 | 01:47 | 01:47 | 01:49 | 01:48 | 01:48 |
Vidurkis | 01:47 | 01:48 | ||||
Gooseberry rendering (multicore) | 30:07 | 30:00 | 30:03 | 30:16 | 29:59 | 30:03 |
Vidurkis | 30:03 | 30:06 | ||||
wPrime 32M (4 threads) | 7,608 sec | 7,611 sec | 7,548 sec | 7,657 sec | 7,564 sec | 7,543 sec |
Vidurkis | 7,589 sec | 7,588 sec | ||||
POV-Ray (single core) | 542,23 sec | 542,13 sec | 544,62 sec | 545,04 sec | 546,06 sec | 545,63 sec |
Vidurkis | 542,99 sec | 545,58 | ||||
Tipinės el. sąnaudos | ~93 W | ~93 W | ||||
POV-Ray (multi core) | 61,01 sec | 60,85 sec | 61,09 sec | 61,12 sec | 61,20 sec | 61,59 sec |
Vidurkis | 60,98 sec | 61,3 sec | ||||
Tipinės el. sąnaudos | ~155 W | ~155 W | ||||
WinRAR 5.71 x64 (multicore) | 23 795 MB/s | 23 723 MB/s | 23 732 MB/s | 23 552 MB/s | 23 697 MB/s | 23 565 MB/s |
Vidurkis | 23 750 MB/s | 23 605 MB/s | ||||
7-Zip 19.00 x64 (multicore) | 77 891 MB/s | 78 099 MB/s | 78 192 MB/s | 77 325 MIPS | 77 788 MIPS | 77 222 MIPS |
Vidurkis | 78 061 MIPS | 77 445 MIPS | ||||
Far Cry 5 (1080p/+GTX 1080 Ti) | avg 101 fps
1 % 76 fps 0,1 % 61 fps |
avg 100 fps
1 % 76 fps 0,1 % 49 fps |
avg 102 fps
1 % 75 fps 0,1 % 50 fps |
avg 102 fps
1 % 77 fps 0,1 % 61 fps |
avg 102 fps
1 % 76 fps 0,1 % 46 fps |
avg 102 fps
1 % 77 fps 0,1 % 51 fps |
Vidurkis |
avg 101 fps
avg 1 % 75,7 fps avg 0,1 % 53,3 fps |
avg 102 fps
avg 1 % 76,7 fps avg 0,1 % 52,7 fps |
Tai norint kuo greitesnio užsikrovimo geriau naujesnis mikrokodas, bet minimaliai sparta didesnė su senesniu mikrokodu. Visko negali turėti iš karto 😀
Man regis, kad atvejai, kuomet naujinti UEFI neverta, yra tokie reti, jog galima sakyti, kad visada verta 🙂
Siaip jeigu jau labai gilintis i detales, tai AGESA nera mikrokodas, bent jau ne toks mikrokodas, kuri visi suvokia istoriskai. AGESA yra AMD binariku package’as, reikalingas paupdeitint integruotus mikrokontrolerius. Turbut ne visi zinot, kad visi Ryzen AMD CPU eina dar su atskiru ARM’u integruotu – auksciausios privilegijos CPU. Jis irgi turi tureti savo „OS“.
Tas „tikras“ mikrokodas tai yra tik dalis, kuri atsigula jau grynai i CPU core’us, ir paupdeitina ta layer’i, kuris interpretuoja x86-64 instrukcijas ir skaldo jas i mikrooperacijas. Tai va sitas tiny miniatiurinis layer’iukas is tiesu yra tas klasikinis mikrokodas.
Ai, dar verta pamineti, kad modernios OS (Linux, Windows 10) uzsikrovimo metu visada pasitikrina, koks yra esamas mikrokodas, ir jeigu jos savyke su updeitais turi naujesni, run-time’e uzkrauna naujesni. Bet jis buna tik run-time, iki sekancio reboot. Jeigu yra du PC, su skirtingais AGESA, tai teoriskai imanoma, kad uzsikrovus PC iki galo su Win/Linux, jie naudos ta pati CPU mikrokoda, kuris pareis is OS updeitu konteinerio (bet reikia patikrint praktiskai, niekad to neziurejau pats).
As asmeniskai visad viskam surasau naujausius firmware’us, per daug nesuku galvos. Absoliuciai daugumoj atveju jie pataiso daugiau, nei sulauzo. Pavasari, ties LTS ubuntu-base isleidimu, pasidarau viena „inventorizacijos diena“, kai atnaujinu UEFI, SSD FW ir pan. Jeigu buna aisku updeitai 🙂 Is kitos puses, jeigu viskas veikia stabiliai, tai atnaujint prasme nebent del security fix’u tik lieka.
Kaip visada labai gera šviečiamoji informacija, bet visko nesuprantu 😀 ir tuos AGESA atnaujinimus vis tiek vadinsiu mikrokodais, nes geriau net nelabai ką ir sugalvoju.
Tai viskas OK su tuo vadinimu. Jis nera neteisingas, nes mikrokodu paprastai vadinamas software layer’is, kuris kazkieno atzvilgiu veikia kaip HW. Paprasciausiai seniau, tai buvo tik ta mazyte dalis. Dabar tas layeris isaugo smarkiai, nes modernus CPU is tiesu jau ne CPU, o SoC, su daug integruotu dalyku, kam reikia binary firmware’u.
As cia ka rasau, tai daugiau del idomumo, ar niuanso kokio tai mazo.
Kaip jau seniau esu sakę, paskaitai tavo postą ir protingesnis pasidarai nepaisant jei visko ir nesupranti 🙂
As esu tik casual’as kas del tu visu low level dalyku… Jei norit tikrai protingu minciu, rekomenduoju LINUX arba Coreboot mailing listus paskaityti 🙂 Jeigu labiau is mainstream, tai HotChips konfos turinys kartais neblogas buna. As tai tik komentuoju i tema kas man ant liezuvio tuo metu buna 😀
O kalbant apie mail listus, neseniai ten buvo idomus Torvaldso pasisakymas apie threadu sinchronizacija ir OS schedulerius. Vienas gamedev’as bande irodyt, kad linux blogai veikia, bet paaiskejo, kad jo spinlock’ai blogai padaryti is tiesu. Kalba eina apie Rage 2 koda.
Tai ka jus norit, kad ant Ryzen gerai tie zaidimai varytu, jeigu ten net sinchrozinacija gaidine buna softe, mazdaug ant i7 2600K patestavo, veikia ir davai 😀
Anyway, cia nukrypau jau nuo temos…
Įdomu pasidarė apie ta gaidinę sinchronizaciją. Moar pls.
Ten daug detaliu, tai tik saltinius imesiu, kam idomu.
Originalus gamedev’o post’as:
https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/
Torvalds’o laisku pradzia:
https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
TL;DR: gamedev’as nelabai suprato, kaip veikia scheduler’is, jo bench’inimas buvo netikslus, o spinlock’o implementacija prasta.
O mes ka galim pasiimti is visos sios istorijos, kad softo optimizacijos yra labai svarbu. Tiksliau net neoptimizacijos, o teisingai parasytas kodas. Ypac AMD atveju, kai yra daug thread’u ir didesnis nei Intel RAM latency.
Dėkui. Įdomus pasiskaitymas
kaip suprantu kuo daugiau thread’u iš „suklijuotų“ AMD lustų, tuo sunkiau tie thriedai susikalba ir nepasidalina tarpusavy, kas kokį Taską atliks
Blogai supranti. Bet netgi daug sunkiau susikalbanciu threadu butu geriau, nei jokiu threadu Intel atveju 😀