Visi projektai

Mac GPU Checker

macOS GPU testas tikrais TFLOPS (fp16 GEMM) — ir ar chipas išlaiko skaičių po apkrova.

SwiftMetalmacOS
Mac GPU Checker ekrano vaizdasDev-story
01

Iššūkis

Perkant naudotą Mac, piko GPU skaičiai meluoja: dulkėta mašina pasiekia piką sekundei, o po pusės minutės skyla. Nori žinoti, ar chipas išlaiko skaičių, o ne tik jį paliečia.

02

Ką darėme

Swift programa, per Metal Performance Shaders 60 sekundžių sukanti 4096×4096 fp16 matricų daugybą GPU; didelis skaičius yra dabartiniai TFLOPS (FLOPs skaičiuojami tiksliai kaip 2·M·N·K, tad tai fizinis našumas, ne balai), gyva kreivė rodo, kaip mašina jį išlaiko, o verdiktas palygina su tos kartos chipo laukiamu diapazonu. Yra headless režimas, išvedantis vieną JSON eilutę mašinoms palyginti.

03

Rezultatas

Vienas langas, vienas didelis skaičius ir kreivės forma per mažiau nei minutę pasako, ar Mac GPU išlaiko, ar trotlina — tikras aušinimo testas, kartu ir naudoto Mac apžiūros įrankis.

Dev-story straipsnis

Kaip buvo kuriamas projektas: Mac GPU Checker

Piko GPU skaičius suklastoti lengviausia pasaulyje: beveik kiekvienas Mac, net su dulkių pilnu radiatoriumi, sekundei ar dviem pasieks savo TFLOPS, paskui įkaista ir subyra. Mac GPU Checker sukurtas būtent tam momentui — naudoto Mac apžiūrai — tad didelis skaičius ekrane yra ne pikas, o ką mašina daro dabar, o kreivės forma šalia yra tikroji diagnozė.

Skyriai

05

Moduliai

05

Stackas

Swift + Metal

01

Kodėl projektas atsirado

Perkant naudotą Mac, piko GPU skaičiai meluoja: dulkėta mašina pasiekia piką sekundei, o po pusės minutės skyla. Nori žinoti, ar chipas išlaiko skaičių, o ne tik jį paliečia.

Piko GPU skaičius suklastoti lengviausia pasaulyje: beveik kiekvienas Mac, net su dulkių pilnu radiatoriumi, sekundei ar dviem pasieks savo TFLOPS, paskui įkaista ir subyra. Mac GPU Checker sukurtas būtent tam momentui — naudoto Mac apžiūrai — tad didelis skaičius ekrane yra ne pikas, o ką mašina daro dabar, o kreivės forma šalia yra tikroji diagnozė.

02

Ką sukūrėme

Swift programa, per Metal Performance Shaders 60 sekundžių sukanti 4096×4096 fp16 matricų daugybą GPU; didelis skaičius yra dabartiniai TFLOPS (FLOPs skaičiuojami tiksliai kaip 2·M·N·K, tad tai fizinis našumas, ne balai), gyva kreivė rodo, kaip mašina jį išlaiko, o verdiktas palygina su tos kartos chipo laukiamu diapazonu. Yra headless režimas, išvedantis vieną JSON eilutę mašinoms palyginti.

Vieno lango Swift programa, per Metal Performance Shaders 60 sekundžių sukanti 4096x4096 fp16 matricų daugybą GPU. Didžiulis skaičius yra dabartiniai TFLOPS; eilutė po juo rodo verdiktą (išlaiko, trotlina arba žemiau šio chipo diapazono); o gyvas grafikas brėžia piką punktyru su išlaikymo kreive po juo. Headless režimas išveda vieną JSON eilutę, tad naudoto Mac pirkėjas gali palyginti kelias mašinas nuo USB.

03

Pagrindiniai moduliai ir vartotojo kelias

M01

Skaičius yra fizika, ne balai: GEMM FLOPs skaičiuojami tiksliai kaip 2*M*N*K, tad TFLOPS figūra yra tikra sparta, o ne sugalvotas benchmark balas.

M02

Jis matuoja tai, kas naudotoje mašinoje svarbu — išlaikymą, ne piką: sustained yra pastarųjų replikų vidurkis, o low yra blogiausia prasukimo replika, tad trotlinantis po 20-40 sekundžių chipas parodo aiškų nuosmukį, o ne draugišką piką.

M03

Jis žino, kaip atrodo gerai: programa turi laukiamą diapazoną atpažįstamoms chipo kartoms ir tiesiai pasako, kai mašina žemiau jo.

M04

Jis kartu yra aušinimo stresas: GEMM kaitina GPU stipriau nei beveik bet kokia reali užduotis, tad tiesi linija reiškia, kad šiluminė sistema tvarkosi, o nuosmukis ar pjūklas reiškia dulkes, išdžiūvusią pastą ar konkurenciją.

M05

Jis keliauja: diegimo skriptas gali surinkti perkeliamą kopiją į USB, o kadangi svetimame Mac programa nepasirašyta, ji dokumentuoja vienkartinį dešinį-klik-Atidaryti ir headless CLI kelią patikrai be GUI.

04

Architektūra ir technologiniai sprendimai

Sukurta su Swift, Metal, macOS.

Swift + Metal Performance Shaders GEMM branduoliui; 60 sekundžių prasukimas su piku, sustained ir low; chipo laukiamo diapazono lentelė verdiktui; headless režimas su viena JSON eilute; surinkimo/diegimo skriptas su perkeliamu USB tikslu.

05

Rezultatas ir pamokos

Vienas langas, vienas didelis skaičius ir kreivės forma per mažiau nei minutę pasako, ar Mac GPU išlaiko, ar trotlina — tikras aušinimo testas, kartu ir naudoto Mac apžiūros įrankis.

Vienas langas, vienas sąžiningas skaičius ir kreivės forma per mažiau nei minutę pasako, ar Mac GPU išlaiko savo nominalų našumą, ar tyliai trotlina — skirtumas tarp gero naudoto Mac ir brangaus šildytuvo.

Toliau skaityti

Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.

Turite panašią idėją?

Aptarti projektą