K PowerPC Matrix-Multiply Assist ,jsem dohledal následující přehledový dokument k tomu co umí a jak ho používat <a htef="https://www.redbooks.ibm.com/redpapers/pdfs/redp5612.pdf">Matrix-Multiply Assist Best Practices Guide a vědecký článek A matrix math facility for Power ISA processors. Základem je pro 32-bit float pronásobení 4x4 elementů kdy je všech 16 výsledků přičítáno do 16 mezisoučtových položek 512 bit registru. Pokud se dopočítávají okrajová pole nebo spodní pravý roh, tak jsou k dispozici instrukce s maskováním přesahujících elementů. Nenašel jsem variantu instrukcí která by dovolila masky specifikovat nějakým registrem, to znamená, že ideálně počítání vyjde jen pro násobení matic, jejichž velikost je známá v době kompilace. Stejně tak jsem v textu nevšiml nějakého maskovaného (RISC-V V extension, ARM SVE predicate register) ukládání a načítání do/z paměti z VSRx registrů, ale to spíš předpokládám, že k dispozici bude. V každém případě lze předpokládat, že architektura Power má hodně sil, výkonu v této oblasti, a s podporou IEEE FP16 a i Intel bfloat16, kdy bude možné jednou operací násobit 8x8 elementů (int8 umí i 16x16 s částečně posčítanými výsledky) lze předpokládat i velmi velký výkon v oblasti machine learningu. Trochu mě mrzí to kódování masek jen do instrukcí, mimochodem kódovaných 64-bity (RISC-V opět na nutnost prodlužovat/zkracovat instrukce myslel dopředu). Pokud neexistuje varianta s určením z registrů, tak pak pro obecné BLAS použití nezbývá než tam mích hodně ošklivých ifů a nebo JIT kompilaci na danou operaci alá GEGL... Pokud někdo nastudoval více, budu rád, když mě doplní. Asi představím i tuto alternativu k SVE svým studentům na předmětu B4M35PAP - Pokročilé architektury počítačů.
Tak zrovna implementace maskování v RISC-V je teda hodně nepovedená. Zeroing tam není a pro maskování je jen jeden registr, který je vlastně SIMD registr (to nejhorší řešení). Až mi přijde, že RISC-V V navrhoval někdo, kdo nikdy žádný SIMD kód nenapsal.
Nejlepší SIMD je momentálně AVX-512, těžko říct jestli RISC-V bude této instrukční sadě vůbec někdy být schopný konkurovat.
IBM POWER je po stare Digital ALPHA asi jeden z top CPU a arch.
Krom AS/400 na tom bezi i mainframy Z/Systems (predchudce:S/390) ale tez AIX - LPAR - ktera bezi jan na AIX masine tak na Z/systems - kde umoznuji garantovat a virtualizovat kde co, az na urovni pocty I/O na discich
Na ala AIX velke masine vetsinou bezi kupa AIXu a Linuxu - je to taklovy moderni mainframe, ktery neni tak heavy duty - cili modernejsi. - ale umi menit CPU i RAM za behu masiny, ktere PC tohle umi ?
Mainframe od IBM maji casto banky a to dokonce i se starym a prisernym Z/OS - ktery neumi ani beh vice programu naraz, jede tam fronta a pousti to ze spoolu, bezi to porad stejne pomalu ;-) bez ohledu zda tam date 100 pozadavku nebo 200 milionu ;-) ale i tam uz se pouziva i AIX a Linux - ale jsou tam garantovane aplikace, ktere na nicem jinem nejsou certifikovane a jde tam o miliardy USD, pokud by to nebezelo spolehlive - dokonce se tam pouziva i zcela bezpecny a bez moznosti preteceni bufferu etc. COBOL.
Cili IBM na CPU POWER vydelava neskutecne penize at uz na oprvadu silene postavenych mainframe - mega tezke, hodne medi, stare konektory, ale nehjrozi nejake ulomeni, nebo studeny spoj - vse je fakt jak stare RISC - tedy i kazda deska tam vazi - diky medi, kterou se tam fakt nesetri.
Az po trochu modernejsi AS/400 a AIX masinam - de fakto AS/400 a AIX masina je to same, jen to ma jinou bravu racku - a ty AIX jsou hodne popularni, je to vlastne takovy mainframe pro "chude" - opousti to FICOM a jine proprietarni protokoly, je to cele vice moderni, ale stale velmi spolehlive a hot-swap uplne vseho - s tim, ze tam bezi hodne virtualizovanych masin. - a date tam mnohem vice fyzickych CPU - coz x86_64 neumi, casto 2x CPU max 4CPU aspon ta RAM uz tam jde i dodat, IBM to umela davno
x86_64 uz maji jako lowcost, porad spickovy vykon, dnes uz i ganrance provedeni instrukce, dokonce uz davno mame switch na vice CPU a ne jako predtim, ze vice CPU striktne delili frekvenci sbernice bez ohledu, zda to pouzivate, nebo ne - no to bylo, dnes ma i NX_stack - cili je to skoro tak funkcni jako IBM POWER a vykonem je to srovnatelne az na par specialnich veci - ale porad to ma omezeni, ze neni mozno sestrojit masinu s hodne CPU a RAM a s LPAR k tomu - mozna to ani nejde, nebo se jim nechce davat tyhle tech. do CPU, ktere IBM nepatri.
Porad je to pro IBM vysoce ziskove