Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
Byla publikována Výroční zpráva Blender Foundation za rok 2024 (pdf).
Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.
Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
double a[3], b[3], c[3]; [...] c[0]=a[0]*b[0]; c[1]=a[1]*b[1]; c[2]=a[2]*b[2];dokáže to gcc optimalizovat a použít na to vektorový součin (MULPD) místo jednotlivých násobení? Díky.
-mfpmath=sse -msse -msse2
by to mohlo dělat gcc samo, ne?
$ gcc -ggdb3 -O3 -march=pentium4 -mfpmath=sse,387 -msse -msse2 -msse3 sse1.c -o sse1 $ objdump -d -S sse1 [...] 08048354 |main|: #include|stdio.h| int main(void){ 8048354: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048358: 83 e4 f0 and $0xfffffff0,%esp 804835b: ff 71 fc pushl 0xfffffffc(%ecx) 804835e: 55 push %ebp 804835f: 89 e5 mov %esp,%ebp 8048361: 51 push %ecx 8048362: 83 ec 54 sub $0x54,%esp volatile double a[3], b[3]; double c[3]; a[0]=.5; a[1]=.5; a[2]=.5; 8048365: f2 0f 10 05 c0 84 04 movsd 0x80484c0,%xmm0 804836c: 08 804836d: f2 0f 11 45 e0 movsd %xmm0,0xffffffe0(%ebp) 8048372: f2 0f 11 45 e8 movsd %xmm0,0xffffffe8(%ebp) 8048377: f2 0f 11 45 f0 movsd %xmm0,0xfffffff0(%ebp) b[0]=.5; b[1]=.5; b[2]=.5; 804837c: f2 0f 11 45 c8 movsd %xmm0,0xffffffc8(%ebp) 8048381: f2 0f 11 45 d0 movsd %xmm0,0xffffffd0(%ebp) 8048386: f2 0f 11 45 d8 movsd %xmm0,0xffffffd8(%ebp) c[0]=a[0]*b[0]; c[1]=a[1]*b[1]; c[2]=a[2]*b[2]; 804838b: f2 0f 10 5d e0 movsd 0xffffffe0(%ebp),%xmm3 8048390: f2 0f 10 6d c8 movsd 0xffffffc8(%ebp),%xmm5 8048395: f2 0f 10 55 e8 movsd 0xffffffe8(%ebp),%xmm2 804839a: f2 0f 10 65 d0 movsd 0xffffffd0(%ebp),%xmm4 804839f: f2 0f 10 45 f0 movsd 0xfffffff0(%ebp),%xmm0 80483a4: f2 0f 10 4d d8 movsd 0xffffffd8(%ebp),%xmm1 printf("c=%g,%g,%g\n",c[0],c[1],c[2]); 80483a9: f2 0f 59 c1 mulsd %xmm1,%xmm0 80483ad: f2 0f 11 44 24 14 movsd %xmm0,0x14(%esp) 80483b3: f2 0f 59 d4 mulsd %xmm4,%xmm2 80483b7: f2 0f 11 54 24 0c movsd %xmm2,0xc(%esp) 80483bd: f2 0f 59 dd mulsd %xmm5,%xmm3 80483c1: f2 0f 11 5c 24 04 movsd %xmm3,0x4(%esp) 80483c7: c7 04 24 b0 84 04 08 movl $0x80484b0,(%esp) 80483ce: e8 bd fe ff ff call 8048290 |printf@plt| return 0; } [...]
-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -march=pentium4
):
c[0]=a[0]*b[0]; c[1]=a[1]*b[1]; c[2]=a[2]*b[2];
se nezvektorizuje (fuj, to je hnusný slovo...), ale
for(int i=0; i<3; i++) c[i]=a[i]*b[i];
ano.
for
udělá stejně něco podobné tomu prvnímu. Zřejmě ne úplně.)
Jak autor zmíněného článku píše, podobné optimalizace mohou vést k nestabilnímu kódu.
Tiskni
Sdílej: