Portál AbcLinuxu, 1. května 2025 08:42

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
18.9.2012 23:06 tom
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Odpovědět | Sbalit | Link | Blokovat | Admin
Nechcete to prelozit a zmerit jeste pro pripad, kdy ma gcc k dispozici data z profileru (-fprofile-use)?
mirec avatar 18.9.2012 23:17 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Profiler ma nenapadol. Ak na to nezabudnem doplním.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 19.9.2012 18:50 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py

gcc 4.7 s -O3 a -lto má s -fprofile-use (samozrejme predtým som spúšťal s -fprofile-generate) prakticky totožné výsledky ako v testoch v blogu: priemer 1.4497, int. spoľahlivosti 90% 1.4283-1.4717, min 1.427, max 1.494.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
19.9.2012 00:12 Radek Podgorny | skóre: 16
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Odpovědět | Sbalit | Link | Blokovat | Admin
...a nema python na tyhle bitove hratky nejake moduly (tedy implementace v c)?
http://podgorny.cz
mirec avatar 19.9.2012 08:44 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Na prácu s maticami a vektormi má celkom slušný balík numpy. Preberal som to s jedným pythonistom (ja som tiež programátor v pythone, ale robím skôr webové veci než algoritmy) a čiste teoreticky by sa to mohlo dať urýchliť použitím numpy. Problematické sú operácie na úrovni pixelov kde sa spracovanie podobá na fragment shadery na grafike. Teoreticky by sa to mohlo dať spracovať rozdelením bloku na 16 výškových vrstiev a potom pre každý pixel počítať farbu a aplikovať na pixmapu s maskovaním už vykreslených pixelov. Operácii by bolo síce viacej, ale vyhol by som sa tak podmieneným skokom. Na najnižšej úrovni by bolo vhodné funkciu aplikovanú na pixely prepísať do C.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
19.9.2012 15:43 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Na najnižšej úrovni by bolo vhodné funkciu aplikovanú na pixely prepísať do C.
Ještě lepší variantu představuje cython, kde je snadné přepsat jenom tu kritickou část do ekvivalentního C-like staticky typovaného kódu.
When your hammer is C++, everything begins to look like a thumb.
19.9.2012 00:30 xanax
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Odpovědět | Sbalit | Link | Blokovat | Admin
takychto clankov by tu malo byt viac
Heron avatar 19.9.2012 16:31 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč má každý blok svoji vlastní tabulku (to je tedy zřejmně onen druhý blok dat v jednom záznamu) materiálů?
Po prečítaní (a zahodení) metadát sa dostaneme k tabuľke materiálov. Každý blok má svoju vlastnú tabuľku materiálov
Jinak chválím použití SQLite. Je to lepší, než vymýšlet vlastní yet another db a potýkat se s problémy, které jsou už dávno vyřešené.
Heron
mirec avatar 19.9.2012 18:33 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Proč má každý blok svoji vlastní tabulku (to je tedy zřejmně onen druhý blok dat v jednom záznamu) materiálů?

Neviem prečo má vlastnú tabuľku keď by sa to dalo riešiť goláblnou. Druhý blok komprimovaných dát sú metadáta, čo je key-value datastore na rôzne účely (napr. rôzne krabice, vlaky ... používajú položku "inventory" pre záznam objektov uložených v inom objekte). Tabuľka je uložená až za metadátami v nekomprimovanej forme.

Jinak chválím použití SQLite. Je to lepší, než vymýšlet vlastní yet another db a potýkat se s problémy, které jsou už dávno vyřešené.

Táto implementácia je len prenesenie pôvodnej súborovej implementácie do databázy. Prvé verzie mali mapu uloženú ako množstvo malých súborov s rovnakým názvom ako stĺpec pos v databáze a rovnakým obsahom ako stĺpec data.

SQLite je dobrá keď má obsluhovať jedného klienta. V minetest serveri sa mi zdá, že je diskové IO hlavnou prekážkou väčšieho množstva hráčov.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Josef Kufner avatar 25.9.2012 23:06 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
SQLite je dobrá keď má obsluhovať jedného klienta. V minetest serveri sa mi zdá, že je diskové IO hlavnou prekážkou väčšieho množstva hráčov.
S jakoukoliv databází na disku nemáš šanci. Tohle musíš udržet v paměti a čas od času (jednotky minut) udělat záložní kopii na disk. Pokud máš návaznost na okolní svět (jiná aplikace), tak pak držet záznam o provedených operacích pro případný rollback nebo rekonstrukci.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 25.9.2012 23:07 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Odpovědět | Sbalit | Link | Blokovat | Admin
Btw, jak moc se takovýhle svět dá počítat na grafické kartě? IMHO se tady extrémní paralelismus docela hodí.
Hello world ! Segmentation fault (core dumped)
mirec avatar 26.9.2012 11:28 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Prepis utility MinetestMapper do C++ a benchmarky C++ / Py
Niektoré operácie by určite išli krásne vektorizovať. Grafiky by mali byť aj celkom slušne optimalizované na z-buffer test. Výkon by podľa mňa mohlo zabiť len používanie asociatívnych polí, ale ak by CPU robil len načítavanie a preklad ID materiálov na farby a zvyšok by robila grafika mohlo by sa to tak o 50% zrýchliť (vychádzam z hodnôt nameraných callgrind-om).
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.