funkcionálně.cz

Přední český blog o funkcionálním programování, kde se o funkcionálním programování nepíše
komentáře článku 

Hořící křemík & násobení matic



Text komentáře


Kuba Beránek (2017-06-17 09:58)
Super článek :-)

Ještě mě napadlo, jestli by nemohlo pomoct použít pro zápis do výsledné matice non-temporal store, aby se zbytečně nenačítal do cache, ale v téhle stáži už to asi nebude mít žádný účinek.

U toho OpenMP by ještě taky možná mohlo být zajímavé otestovat různé interleavingy vláken, defaultně se to scheduluje staticky po blocích, což by tady asi mělo být ideální, ale kdo ví. Kdyby se nastavil chunk_size na 1 ( #pragma omp parallel for schedule(static, 1) ), tak by to interleavovalo řádky, tj. první vlákno 0-tý řádek, druhé vlákno 1-tý řádek atd.


k47 (2017-06-25 22:49)
To všechno je možné. Chce to jenom vyzkoušet, ale já jsem na tom strávil tolik času, že to už nechci ani vidět.

Non-temporal store tady může pomoct, protože to zapisuje celé bloky dat. Ale nemusí to být jasná výhra. Zkoušel jsem to použít v jiném kontextu (řazení radix sortem) a tam to vedlo k 5x zpomalení z důvodů, které jsem nezjistil (možná, že write buffer nedokázal spojit jednotlivé požadavky na zápis dohromady). Výsledná binárka vypadala skoro identicky, nebylo tam nic očividně neefektivního, jen to jelo mnohem pomaleji. Zase, muselo by se to vyzkoušet.


@kaja47, kaja47@k47.cz, deadbeef.k47.cz, starší články