Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.
Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.
… více »Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.
Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.
Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 2 GB varianty o 12,50 dolarů. Nově 2 GB Raspberry Pi 4 stojí 67,50 dolarů a 2 GB Raspberry Pi 5 stojí 77,50 dolarů.
OpenMandriva ROME, tj. průběžně aktualizovaná (rolling) edice linuxové distribuce OpenMandriva, byla vydána ve verzi 26.09. Vedle Flatpaku také s podporou Snapu.
Edison Design Group po více než 30 letech zveřejnil zdrojový kód svého EDG C/C++ front-endu. Ten proslul širokou podporou standardů C++ a kompatibilitou s dialekty kompilátorů od Microsoftu, GNU, Clangu, Sunu a dokonce i s prehistorickým cfrontem. EDG byl použit například v kompilátoru Intel C++ Classic, kompilátoru NVCC od firmy NVIDIA pro platformu CUDA nebo v našeptávači kódu IntelliSense v produktech společnosti Microsoft. Projekt nyní spravuje organizace The C++ Alliance a kód je dostupný pod licencí Apache 2.0, doplněnou o výjimky projektu LLVM.
Pocket Tank je malé kapesní virtuální akvárium postavené na vývojové desce ESP32-S3-Touch-AMOLED-1.8. Na dvoujádrovém mikrokontroléru ESP32-S3 s 8 MB PSRAM a 16 MB flash paměti běží jak simulace akvária, tak i malý jazykový model určující chování rybiček. Lokální model o velikosti 7,56 MB se 14 miliony parametrů vznikl destilací modelu Gemma 4 26B, tedy učitele s 26 miliardami parametrů. Kromě firmwaru pro skutečný modul s AMOLED
… více »Open-source nástroj Jevstiller vytváří (destiluje) malý lokální model, který se průběžně učí z odpovědí komerční služby Jev. Běžné dotazy vyřizuje přímo na vlastním hardware, čímž může řádově zkrátit čas odezvy a snížit provozní náklady díky menšímu využívání zpoplatněného API. Nejisté požadavky Jevstiller posílá do Jevu, rovněž průběžně kontroluje náhodná dvě procenta dotazů Jevem. Pokud se lokální model začne s Jevem rozcházet,
… více »
typedef void* ndata_t;
struct node {
struct node *left; /* left child */
struct node *right; /* right child */
struct node *parent; /* parent */
uint64_t ID;
ndata_t data; /* data */
};
typedef int (*f_stn_deldata)(ndata_t ndata); /* splaytree node delete data*/
static f_stn_deldata stn_deldata;
kde stn_deldata je pointer na userom zadefinovanu funkciu na zmazanie dat - ak by tieto data boli vytvorene dynamicky. pri mazani stromu volam funkciu, ktora prechadza rekurzivne nody a nasledne ich maze .. a tu sa zacina moja uvaha .. pseudokod pri mazani:
destroy(struct node* n) {
..
..
if (n->left) destroy(n->left);
if (n->right) destroy(n->right);
/* tu prichadza na rad moja uvaha */
if ( stn_deldata ) stn_deldata (n->data);
..
zmaz nodu
..
}
jedna sa mi o to, ze ten if sa bude vykonavat pri kazdom jednom mazani .. pri par polozkach je to jedno, pri 10mil, pripadne 1 mild. to uz aj stoji za uvahu ..
riesenie by bolo jednoduche - vytvorit dalsiu fciu destroy_nodata a tu volat rekurzivne .. logika, kt. fciu volat by bola v hlavnej st_destroy fcii
teoreticka otazka - ma zmysel sa zaoberat takouto optimalizaciou ? je to best practice ci ..?
compare(n1,n2), a mam nasledovny kod:
..
if ( (compare(n1,n2)) <0 ) {
/* do something */
}
else if ( (compare(n1,n2))== 0) {
/* do something else */
}
..
ci sa bude compare volat zadazkym, alebo si to vie zoptimalizovat a bude sa volat len raz a potom sa uz bude odkazovat na vysledok .. gcc a gcc -O3 na trivialnom priklade:
int main()
{
int x = 0;
if ( x ) return 1;
return 0;
}
raz skompilovane gcc -c test.c, druhy krat gcc -O3 -c test.c
spatne som sa pozrel cez objdump -d test.o - jasne bolo vidno, ze podmienku uz ani nekontroluje a rovno vrati 0 v druhom pripade:
test.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <main>:
0: 31 c0 xor %eax,%eax
2: c3 retq
k tej mojej otazke - neda sa povedat pri kompilacii, ci je alebo nie je def. - to sa zisti az pri linkovani .. resp., striktne asi vzato, stn_deldata je zadef. ako neinicializovana premenna pri kompilovani (az st_init ju nastavi bud na NULL alebo na adresu user fcie)
st_destroy sa vola vzdy, ta potom "spusti" hlavnu destroy fciu, ktoru som spominal hore .. user teda v kode pouzije:
/* init s user def. compare/dump/destroy fciami */
struct splaytree *st = st_init(mycompare, mydump, mydestroy);
..
..
/* konecny destroy */
st_destroy(st);
kde st_destroy(struct splaytree *st) vola st_destroy_nodes(struct node* n), ktora sa vola rekurzivne (to je prave to telo fcie, ktore som v mojom prispevku nazval len destroytakze v hlavnej st_destroy by som sa rozhodol, ci sa bude volat rekurznivne "s data delete", alebo len "node delete" ..
ano, mozno je to moc spekulativne, zaujima ma vsak nazor, priapdne skusenosti druhych
Tiskni
Sdílej: