Testy ukazují, že většina balíčků nabízí jen velmi mírný nárůst výkonu okolo jednoho procenta, ale některé balíčky jsou na tom výrazně lépe.
A proto by variace / rozsireni instrukcnich sad nemeli byt povazovany za architekturu, ale pouze runtime volbu - a mit nakompilovany jen ty balicky, kde to bude mit nejaky efekt.
Se to mohlo uz davno vyresit podobnou metodou jako ma Apple fat binaries.. ostatne i ELF to zrejme umi, a chybi tomu pouze malo - aby to linker dal spravne dokupy. Nebo je snad tento pristup patentove chranen, a proto se nemuze v OSS svete objevit?
Pochybuji ze rozsirene registry ze SIMD rozsireni by pouzivala nejaka calling convention pro dynamicky linkovanej kod, ze by tomu branili nejake rekneme, technicke, duvody.
Možná jen nikdo nechce 4x větší binárky?
X86 architektura prošla vývojem a x86_64-v3 je AVX2+BMI2+FMA. To je dneska solidní baseline, kde chybí v podstatě jen AVX512. Jediný důvod, proč se nemluví o X86_64-v4 je snad jen ten, že Intel zaspal dobu.
Třeba takový nativní floating point round má až x86_64-v2 (je potřeba SSE4.1), jenže v2 je na dnešní dobu tak trochu historie.
Tady je ta granularita:
https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
Můj názor je takový, že by se v x86 světě mělo konečně upustit od historických architektur u mainstream dister. Tato podpora akorát ubírá výkon většině lidem, kteří mají moderní HW.
Rozumiem, že pre ajťákov, čo majú moderný high-end počítač a 1Gbit/s prípojku na net je ľahké pozabudnúť napr. na seniorov. Akurát teraz je veľa ľudí čo majú staršiu (ale dostačujúcu) mašinu a používali win10 a musia prejsť na linux. Win10 bežal veľmi dobre na SandyBridge/IvyBridge (AVX inštrukcie). Veľa seniorov majú ešte starší počítač (stretol som sa aj s Core2 Quad) a používajú ho max. 2 hodiny do týždňa. Na to kúpenie lístka na vlak a pozretie hromadnej dopravy im bohate stačí. Pre nich nedáva žiadny zmysel kupovať si modernejší stroj. Takže vôbec nesúhlasím s odstraňovaním podpory týchto architektúr.
Tie 4x väčšie binárky by boli problém pre tých čo používajú obmedzené mobilné dáta. U nás v EU to nie je až taký problém, ale napr. v Afrike by to robilo problém.
> jenže v2 je na dnešní dobu tak trochu historie.
no bohuzel uplne jeste ne, intel to nedaval do slabsich/mobilnich procesoru zalozenych na Atomu, takze i treba N6005 https://www.intel.com/content/www/us/en/products/sku/212327/intel-pentium-silver-n6005-processor-4m-cache-up-to-3-30-ghz/specifications.html ktery je "Marketing Status Launched, Launch Date Q1'21" nema avx. Opravili to v dalsi generaci, N100 uz to konecne ma.
> Můj názor je takový, že by se v x86 světě mělo konečně upustit od historických architektur u mainstream dister. Tato podpora akorát ubírá výkon většině lidem, kteří mají moderní HW.
Podle clanku to vetsinou pridava 1%, takze se da taky rict ze tyhle veci zbytecne vyrazuji spoustu dobreho hardware za minimalni pridanou hodnotu (zdravime Windows 11)
Jenomž většina lidí nemá moderní hardware. To je přesně ten nesmyslný bias řady lidí v IT. Většinou proto, že ho ani nepotřebují. I když samozřejmě záleží, čemu říkáte "moderní hardware". Ale deset let starý počítač dnes bez jakýchkoliv větších problémů dostačuje na 99 % toho, co běžný uživatel potřebuje mimo hraní.
31. 10. 2025, 19:14 editováno autorem komentáře
Tak ono se hezky hází náklady negativních externalit na druhé, že?
Ale je to poněkud dvojsečná zbraň, taky mě vůbec nic nebrání tam tomu důchodci nainstalovat systém takový, který ještě na tom HW poběží, a jestli z toho bude mít radost mimo toho důchodce i nějaký čínský majitel botnetu ... no nikdo tomu ISP nebrání, aby tam i na přípojky zákošů nasadil nějaké IPS a SIEM? To, že je házení vlastních externalit na druhé naprosto v pořádku už jsme se shodli v minulém odstavci, že.
No je to o uhlu pohledu - a vy vidite jen svuj, svoje naklady. Aneb pro vas je negativem to, ze prichazite o nejaky software pro vasi obstarozni platformu, pro dodavatele software je zas negativem nutnost opecovavat software pro vice platforem. A je logickym vysledkem, ze s cilem snizit vlastni naklady se podpory tech obstaroznich platforem nakonec zbavi.
Nevadila by nepodpora HW u nove verze - vetsi problem a gulas do fungovani sveta vnasi zarezavani SW featur - v zajmu "bezpecnosti". Takze se nova verze nedomluvi se starou - jak remote v roli klient/server, tak lokalne, treba mezi kompama doma.
SW se da na rozdil od HW podporovat "donekonecna", na to nepotrebujete nic fyzickeho drzet na stole a v provozu prece. Prestava fungovat SSL, HTTPS, samba odmita podporovat stare verze protokolu, atd.
PS. Vyvojari delaji bohuzel svoji praci hur a hur - navzdory vsem inovacim ktere maji k dispozici v modernim svete :D
Vývojářská práce kvalitní nebývá primárně proto, že na to nejsou peníze/čas.
Podobně i u podpory starého HW je to o tom, kdo tu práci "bude platit". Respektive, není to nutně o penězích, mohli by to (teoreticky) dělat nadšenci ve volném čase, ale prostě je spousta jiných věcí co dělat. HW je dneska neskutečně levný a výkonný (a úsporný a dá se sehnat i velmi malý), zato času nemívají (dobří) vývojáři přebytky.
2. 11. 2025, 08:10 editováno autorem komentáře
Ale ano, ono i zarezavani okrajovych/legacy featur v software smysl ma. Proc? Protoze ono ten kod musite udrzovat, kdyz neco zmenite nekde jinde, je potreba resit dopady i okolo. Situace, kdy "zdanlive nesouvisejici" zmenou kodu nekde jinde se nechtene vytvori necekana dira se stavaji... a nebo se deje to, ze kolem daneho kusu kodu chodi po spickach a boji na to kazdy sahnout (a pak ta dira tam vydrzi klidne i peknych par roku). Ja vim, je to obcas neprijemne pro lidi provozujici nejakou vec, kde jsou zvykli dvacet let kopirovat svuj vyladeny konfigurak - jen ono z druhe strany tahle copy-pastovina s sebou casto nese i jistou otrocinu minulosti a ignoruje se u ni i to, ze danou vec jde treba delat i lepe.
Stare verze SMB protokolu jsou derave jak reseto - holt jsou zatizene naivitou, ktera doprovazela jejich vznik a jsou v podstate neopravitelne, protoze jde o chyby v samotnem navrhu (definici) protokolu. Kryptograficke algoritmy take zastaravaji - RC4 ci DES byvala sveho casu dostacujici sifra, ze? :-) A doba, kdy nam prislo jako skvely napad ukladat hesla v MD5 zas tak vzdalena take neni. Realita je spis takova, ze ta "konecnost" prichazi u software casto driv, zvlast u vami zminenych oblasti.
Jakym zpusobem nekdo napadne ono deravy SMB, kdyz klient i server je v me rezii a povida si to pres OpenVPN / WG tunel mezi sebou? Remote to nejde - to je firewallovany. Local ? Pokud nekdo ma execution prava, tak nic uz napadat nemusi..
Neexistuje bezpecna/nebezpecna vec - je to o tom, jak to pouzivate.
Vy jste jeden z tech, co by plosne zakazal noze, protoze se tim nekdo obcas nehezky poreze.
I v OpenVPN se tu a tam nejaka dira v implementaci nasla, zeano... :-) Zcela bez poskvrny nejsou ani implementace WG, byt tam to byly relativne prkotiny. Ale ono proste obecne i v tech implementacich chyby obcas byvaji, zvlast pokud je rec o Windows. Navic tam, kde lpite na SMB1 je ocividne, ze operacni system sam o sobe zrovna aktualni asi nebude, zeano...
Porad jsi nerekl jakym zpusobem se ta vec napadne a kde spociva prakticka zneuzitelnost.
Protoze ty XP provozuji 25 let ... a ze by to nekdo napadl se nestalo - asi delam neco spatne tedy :D ... anebo je to prikladny zpusob, ze rizika lze spravnym pouzivanim eliminovat - a posledni co me vadi je, ze nekdo porad odrezava SW featury a stava se reseni nepouzitelnym.
Takze ve vysledku se lidi nuti ke zmene - a zmena je do neznama = riziko incidentu se paradoxne zvysuje. Coz prokazuje mnoho prikladu. Ne nadarmo se rika - co funguje, do toho se nehrabe :)
A chovaji se jako vy skutecne vsichni koncovi uzivatele? :-) Aha, nechovaji. To, ze je par uzivatelu zodpovednych neni validni argument v prostredi, kde u vetsiny plati pravy opak - a incidenty z toho vyplyvajici se resi kazdou chvili. Software se te "hlouposti" beznych uzivatelu logicky prizpusobuje, jde se cestou bezpecnejsich reseni - a pro vas "nepostradatelne" funkcionality se v realu stavaji z pohledu vetsinoveho zcela zbytne.
" srát s nějakou historickou architekturou, která třeba nemá ani to AVX."
jeste jednou, N6005 je relativne novy procesor ktery Intel stale jeste podporuje a novy hardware s timhle procesorem se porad prodava - treba https://www.dell.com/en-us/shop/wyse-endpoints-and-software/optiplex-3000-thin-client/spd/optiplex-3000-thin-client
a taky ho podporuji windows 11 (na tom klientu s naistalovanyma 10kama mi to normalne nabizi upgrade na 11ky) Nema to avx ale stale je to slusny moderni hardware ktery jeste docela dlouho vydrzi.
N6005 pouziva treba i odroid h3+ z konce roku 2022 a az h4 z lonskeho roku ho nahradil
https://www.hardkernel.com/shop/odroid-h4-plus/
na aliexpresu jsou stale tuny minipc a ruznych routeru a NASu s jasper lake (nebo dokonce gemini lake) generaci, coz sice neni uplne meritko, ale urcite neni pravda ze je to " hardware, který už není"
podle https://en.wikipedia.org/wiki/Tremont_(microarchitecture) je tam dokonce jeden procesor z roku 2023
windows 11 24h2 teprve loni zarizly hardware bez sse4.2, ktery je mnohem starsi (2008?), takze s avx bych to tak zhave zatim nevidel
ano je mozne ze treba novejsi hry nebo LLM enginy bez avx nejedou ale na zarezavani podpory na urovni OS je jeste trosku brzo, ostatne i ten 26.04 LTS o kterem je clanek ma balicky pro x86_64-v3 zatim jako opt-in pokus, takze jeste 26+5 let by snad nemel byt problem
No koukam na Alzu a ono je to jeste 'horsi', tyhle veci se porad vesele prodavaji i beznym lidem viz treba https://www.alza.cz/notebooky/umax/18842920-v1281.htm - pulka z tech malych notebooku je jasper lake nebo starsi gemini lake. Nevim kdo rozumny si dnes koupi takovy maly laptop s 4GB RAM aby na nem bezel windows 11, ale na neco zakladniho to stacit muze.
Problem pak muze byt u veci, ktere vyuzivaji knihovny typu Eigen, kde za pouziti/nepouziti v3 instrukci zavisi zarovnani struktur v pameti. U "koncovych spoterbitelu" (tj. spustitelnych binarek) si nejake runtime vybery umim predstavit, ale u knihoven clovek potrebuje moc dobre vedet, vuci jakemu kodu buildi...
Zarovnani struktur - to me potkalo ted u nejakeho novejsiho GCC, ze se mi najedou me tooly prestali chovat normalne (pouzivam struktury na cteni binarnich souboru). Byla to celkem zrada, protoze za X let vyvoje to zarovnani bylo porad OK a nenapadlo me ho explicitne specifikovat.
Nedohledal jsem konkretni trigger point ze ktera verze nebo jake nastaveni to zpusobuje, ale z chovani bylo rychle jasny ze ktera bije a nezabil jsem na tom mnoho casu (nemam na tom CI/CD, ale pouzivam to dost casto).
++ // we need our QTFF structures to be packed tightly! ++ #pragma pack(1)
Huh jakou používáte optimalizaci? Protože nějaký podobný zážitek mám už někdy z devadesátek, už si ani nepamatuju z kterého céčka (prošlo mi rukama tehdy dost, Bordelland C, Watcom C, systémová i pak gnu c na všem možném (DECy, Soláče, BSD, Unix) a od té doby #pragma pack(1) dávám naprosto všude.
Takže je pro mě fakt záhadou, jak to, že jste bez něj přežil až do teď :)
A Grok mě v tom ještě utvrzuje:
GCC 1.0 (1987)
GCC has always padded structures for member alignment and trailing padding (to make sizeof(struct) a multiple of its alignment) by default, following ANSI C rules from day one—no changes in core behavior since release. -fpack-struct (or -mpack-struct) disables it.