FAµST 3.32.4 — DYNPROG product method GPU support

This version spreads the DYNPROG product method to GPU Fausts. This is a dynamic programming method to compute a Faust product (or a Faust-matrix product). It varies the order of matrix products composing the whole Faust product (aka Faust.toarray)  considering the cost of each product to speed up the whole computation. Find more information about this method here.

The table below compares the computation times obtained using DYNPROG or DEFAULT_L2R methods (in the latter, the product is basically computed from the left to the right). Four Fausts are tested, they are dense, sparse (CSR, BSR matrices) or mixed (dense + sparse matrices).

The data for the table below was made using this script (please note that the script is random, so the results won’t be exactly the same from one run to another).

Faust name Product Method Device Faust matrix type Comp. time (100 products) Speedup vs DEFAULT_L2R Number of factors
F1 DEFAULT_L2R GPU GTX980 dense 15.7 1 32
F1 DYNPROG GPU GTX980 dense 4.8 3.3 32
F2 DEFAULT_L2R GPU GTX980 sparse (CSR) 43.4 1 32
F2 DYNPROG GPU GTX980 sparse (CSR) 17.7 2.45 32
F3 DEFAULT_L2R GPU GTX980 sparse (BSR) 2.64 1 5
F3 DYNPROG GPU GTX980 sparse (BSR) 1.75 1.5 5
F4 DEFAULT_L2R GPU GTX980 mixed (BSR + dense) 6.26 1 14
F4 DYNPROG GPU GTX980 mixed (BSR + dense) 2.77 2.26 14

Comments are closed.