Ten AVX-512 benchmark na Phoronixu je ale divný.
On testuje AVX-512 disabled a AVX-512 enabled s povoleným nebo zakázaným "FP512". To vypadá, že ovlivňuje jen FP operace a ne int operace, takže v hodně testech se to nějak neprojevuje, protože ty testy FP vůbec nepoužívají - někdo by si z toho mohl udělat špatné závěry.
Tak s AVX-512 je to obecně složité, protože se skutečně efektivní kód nedá vyprodukovat automaticky. Efektivní kód pro AVX vyžaduje část ruční práce a přemýšlení. A ve chvíli, kdy Intelovské procesory (13. a 14. gen) uvnitř nějak hnijí a odumírají, nemá Intel náladu řešit dostupnost AVX-512.
Intel je dnes celkem irelevantní.
Já vidím hodně firem optimalizovat pro AVX-512 pro různé Cloud aplikace a tam to je jednoduché - buď mají ještě Xeony a nebo se migruje na Epyc. Upřímně optimalizace pro AVX-512 už exklusivně řešíme hlavně na AMD platformě (jak vývoj na workstation tak běh v Cloudu).
AVX-512 je budoucnost x86, bez toho x86 už nedává smysl a je jedno jestli si to Intel přejmenoval na AVX10, což podle mě vymyslel nějaký hodně nasraný inženýr, protože když člověk přečte AXX10 binárně je to AVX2, což sedí :) Až AVX10.2/512 přináší něco nového, ale nic zásadního pro běžné aplikace.
jak se avx vyuziva v cloudech? myslel jsem, ze avx je vhodne na masivni vypocty, zpracovani grafiky/videa.
Ano to je obecně pravda, pro mě jsou to např. transkodéry a 3D renderery.
Ale i jiné aplikace můžou mít nově optimalizované některé dílčí funkce, které tu zmíněnou instrukční sadu využijí. Např. různé řadící, statistické algoritmy, hashování, in-line funkce pro stringy.. v databázích, obecných numerických toolkitech (jako třeba NumPy), které se pak ale nemusí nutně používat pouze na typické počítání, protože nad nimi můžete mít i další nástroje (Pandas, pro datové analýzy z nějakých časových řad, tabulárních dat atp.).
To užití skutečně není univerzální. AVX dává smysl skutečně u něčeho, kde se "něco vhodného" počítá a zároveň to musí být něco, kde není výhodnější použít GPU.
Serverová GPU je dost drahá, čekáš rok na dodání a stejně má omezenou paměť a data mezi ní a CPU musíš furt přenášet.
Já vidím hlavně různé databáze, analytické nástroje, atd... Prostě cokoliv co se dá "levně" zrychlit. Ale i cokoliv dalšího - dnes se dá AVX-512 použít i tak, že se jedna knihovna nahradí nějakou optimalizovanou pro AVX-512 - třeba simdjson, x86-simd-sort, atd... a člověk něco zoptimalizuje a ani se nenadře.
Co je na AVX-512 dobré je, že to je hodně univerzální a dá se s tím dělat cokoliv - komprese, erasure coding (AVX-512 + GFNI), parsery, serializéry, atd... já jsem viděl hodně a člověka by to někdy ani nenapadlo, že to jde.
Mě naopak přijde, že množství aplikací, které se vyplatí paralelizovat na avx512 a nevyplatí se provozovat na GPU je velmi malé. Důkazem budiž, že 8 let od prvního AVX512 procesoru skoro žádné kapky pro běžné smrtelníky nejsou.
A proč platit premium za GPU, když můžeš mít komoditu jménem AVX-512?
Optimalizovat pro AVX-512 můžeš i existující SW, který žádnou GPU nikdy nepotřeboval a máš přístup ke všemu co ta aplikace, takže nemusíš řešit GPU RAM, atd...
Dělat cokoliv pro GPU je komplikované a provoz drahý...