Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2015-06-19

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
06:52 Zakn joined #divine
06:54 Zakn Omlouvam se, dnes neprijdu. Mel jsem trochu hell week a nemam zadny prezentovatelny pokrok. Diky.
06:57 Zakn joined #divine
06:58 Zakn joined #divine
06:59 Zakn joined #divine
07:03 Zakn joined #divine
07:07 Zakn joined #divine
07:09 Zakn joined #divine
07:11 Zakn joined #divine
07:13 Zakn joined #divine
07:29 mornfall spito: nevim sice proč, ale jsem na FI
07:29 mornfall spito: tak můžem řešit ty témata &c.
07:32 mornfall xstill: ad ten bitcopy, to že to je největší brzda jsem věděl, ale doufal jsem že se to vyřeší lepším bitcopy
07:33 xstill no, to můžem zkusit, ale i tak, tohle není tolik kódu a je to výrazně rychlejší
07:33 mornfall takže kdyby se ti chtělo zkusit jestli to dokážeš dotáhnout na podobnej speedup tak, určitě bych byl radši :)
07:34 mornfall (ono se bitcopy používá na dost místech a všude to specializovat ručně asi nechceme)
07:34 xstill tak, tohle bylo podle perfu jediný místo kde je to výrazně vidět
07:34 mornfall s LLVM, jistě
07:35 mornfall (já bych asi začal tím že bych zkusil forceinline)
07:37 mornfall ono se to možná někde inlinuje a jinde ne, mám pocit že perf zrovna skrz inliner nevidí
07:43 xstill no já si hlavně myslím, že by ses musel zabavit toho bswapu v bitcopy & spol. v tom bitcopy je toho strašně moc prostě
07:43 mornfall no však si taky myslim že to jde udělat líp
07:45 mornfall ono by bylo dobrý vidět co přesně tam trvá dlouho, ale nevim jak přesnej simulátor je v callgrindu
07:45 mornfall branch misprediction a instruction fetch by mě hlavně zajímal
07:45 mornfall jestli to je hlavně instruction fetch (jako že to je klidně možný), tak je to fakt jen proto že to je dlouhý
07:47 mornfall ono teda navíc pokud se to zainlinuje tak by toho spousta měla jít předpočítat
07:57 mornfall navíc se teda bojim, že když se bude dělat memcopy na pár kilobajtů bude to brutálně pomalý
07:59 xstill no, když to zainlinuju, tak se to zpomalí, a hodně. Což je teda dost divný
07:59 xstill skoro bych řekl, že se to někde zacyklilo
07:59 mornfall zajímavý
08:03 xstill jako to musí být chyba clangu si myslím
08:03 mornfall to mám docela radost
08:04 mornfall občas mam pochybnosti jestli jsem ve správném oboru
08:04 xstill tak nepříjde mi moc možný aby se přidáním forceinline kód zpomalil minimálně o několik řádů
08:04 mornfall to asi nejde no
08:04 xstill schválně co udělá debug
08:07 xstill hm, kdyby ovšem moje gdb vidělo vlákna, to by bylo něco…
08:09 mornfall simtě vlákna k čemu :-P
08:19 xstill nojo v debugu to funguje
08:30 xstill jako mě příjde nejrozumnější teď pushnout tu mou změnu a napsat do tracu, že se chceme podívat na bitcopy
08:36 mornfall já nevim, to že to na kopii jednoho 32b slova memflagů potřebuje 16 iterací mě trochu odrazuje, máme to obenchmarkovaný na nějakých modelech které kopírují větší kusy paměti?
08:38 xstill můžu zkusit, mám i implementaci která kopírovala po slovech, a nebyla skoro rychlejší, ale je možný, že na větším modelu to bude víc znát
08:38 xstill ono to bylo docela dost kódu, na to že to dělalo dost neznatelnej rozdíl
08:39 mornfall nejde ani tak o velikost modelu jako o to co dělá
08:39 xstill nojo
08:39 xstill máme nějakej příklad kde by se to mohlo projevit?
08:40 mornfall VFS bych tipoval
08:41 xstill spito: pošleš mi nějakej příklad na VFS? stačí .bc pokud máš clang 3.4.x
09:08 spito xstill: jo, poslal bych, ale zatím nic ucelenýho nemám
09:08 spito ale cestou vlakem bych mohl něco vymyslet
09:08 spito co to všechno má tak nějak umět?
09:09 spito mornfall: jsi ještě na FI?
09:12 mornfall spito: jsem, ale za 25 minut vyrazím na oběd, vrátím se před druhou
09:13 spito do 10 minut jsem tam
09:13 mornfall popsal jsem skoro celou tabuli ve snaze rychle kopírovat bity
09:16 xstill spito: no celkem cokoli, potřebuju prostě něco co bude manipulovat s víc pamětí/soubroy
09:18 mornfall xstill: ono dost možná stačí alokovat si kilobajtový pole a v cyklu ho vynulovat, nebo něco v tom smyslu
09:18 mornfall xstill: memcopy(_fastpath) se volá aj při kanonizaci
09:19 mornfall a volá se to na každej objekt zvlášť
09:19 xstill ok
09:19 mornfall pro malý objekty je bitcopy extra pomalý (call, cyklus, etc.)
09:19 mornfall a těch tam je hodně, takže možná prostě dominují
09:19 mornfall udělat bitcopy tak aby běhalo po bajtech bude možná úplně stačit
09:20 mornfall (tím se člověk zbaví toho swapování)
09:21 mornfall obecný bitcopy by asi mohlo mít 3 fáze, začátek, cyklus po celých bajtech, konec
09:42 xstill no nevím, i když si naalokuju 2 4 kilobajtový vektory a pak je kopíruju nebo plním, tak to trvá +- stejně (1:26 vs 1:28) (verze s kopírováním po slovech vs. to co jsem poslal)
14:43 Zakn joined #divine
14:48 Zakn joined #divine
14:53 Zakn joined #divine
20:53 Zakn joined #divine
20:56 Zakn joined #divine
21:07 Zakn joined #divine
21:12 Zakn joined #divine
21:13 Zakn joined #divine
21:16 Zakn joined #divine
21:19 Zakn joined #divine
21:21 Zakn joined #divine
21:23 Zakn joined #divine
21:29 Zakn joined #divine

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary