Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.
Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Apple představil iPhone 17e a iPad Air s čipem M4.
Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.
Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.
Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.
Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.
Technologická společnost Anthropic v noci na dnešek oznámila, že se obrátí na soud kvůli rozhodnutí ministerstva obrany označit ji za bezpečnostní riziko dodavatelského řetězce poté, co nevyhověla jeho požadavkům týkajícím se používání umělé inteligence (AI). Prezident Donald Trump krátce před tím uvedl, že nařídil federálním úřadům postupně ukončit využívání jejích AI technologií. Spor mezi firmou vyvíjející chatbot Claude a
… více »Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.
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: