the non blas implementation is also good and keeps improving, the relative performance varies between different platforms, cpu, compilers, so there is no definite answer to the best threshold values. If you found non blas is always better in your computer, then you can disable blas in your startup.ijs .
On Fri, May 15, 2020, 8:45 AM Joey K Tuttle <[email protected]> wrote: > OK, that makes sense (I love it when a 1000 1000 matrix product is "small" > - thinking back to when I first did that benchmark in a 32 KILObyte APL > workspace - Moore's law has been quite a ride!) > > But I'm still a little puzzled why my "default" appears to perform in > between always and never. > > > On 2020May 14, at 17:36, bill lam <[email protected]> wrote: > > > > +/ . * has 2 implementions blas and non blas, generally blas is faster on > > large matrix. there are default thresholds m*n*p to choose blas, the > monad > > (9!:58)"0 i.3 > > reports the threshold for integer, double and complex. > > the dyad set the threshold with 2 special values that I had mentioned. > > > > % . calls +/ . * internally in its implemention. > > > > I suspect the size of matrix you tested is "small" by today's standard so > > non blas is faster. > > > > This needs tuning, you may experiment with different thresholds and > > different matrixes to get the best results. > > > > On Fri, May 15, 2020, 8:17 AM Joey K Tuttle <[email protected]> wrote: > > > >> Bill, > >> > >> I had no idea about this - where can I read about blas vs non-blas? > >> > >> It would seem that my "default" is neither of your suggested cases - but > >> again, no idea what is implied. > >> > >> MBpro-3:~ jkt$ jb > >> JVERSION > >> Engine: j902/j64avx2/darwin > >> Beta-a: commercial/2020-05-09T10:56:17 clang-11-0-0 > >> Library: 9.02.03 > >> Platform: Darwin 64 > >> Installer: J902 install > >> InstallPath: /applications/j902 > >> Contact: www.jsoftware.com > >> 3 timex '%. 1000 1000 ?@$ 0' > >> 0.2393233333 44041920 > >> 0 (9!:58)"0 i.3 > >> 1 1 1 > >> 3 timex '%. 1000 1000 ?@$ 0' > >> 0.3294893333 44041920 > >> _1 (9!:58)"0 i.3 > >> 1 1 1 > >> 3 timex '%. 1000 1000 ?@$ 0' > >> 0.2068576667 44041920 > >> > >> I do like the increased speed from the default to the _1 (9!:58)"0 i.3 > >> case. I would like to know more about the implications. > >> > >> > >>> On 2020May 14, at 16:23, bill lam <[email protected]> wrote: > >>> > >>> Joey, another possibility is blas vs non-blas code being called. > >>> > >>> foreign 9!:58 can set threshold > >>> _1 (9!:58)"0 i.3 NB. +/ .* never use blas > >>> 0 (9!:58)"0 i.3 NB. +/ .* alwasy use blas > >>> > >>> Can you try execute > >>> _1 (9!:58)"0 i.3 > >>> then run your benchmark, then execute > >>> 0 (9!:58)"0 i.3 > >>> then run benchmark again and verify which mode you are using by > default? > >>> > >>> > >>> On Fri, May 15, 2020, 5:32 AM Joey K Tuttle <[email protected]> wrote: > >>> > >>>> Installed under OS X 10.14.6 easily - but I'm puzzled why "my" > benchmark > >>>> > >>>> timex '%. 1000 1000 ?@$ 0' > >>>> > >>>> takes more than twice as much cpu compared to j901... (space used is > >>>> identical) > >>>> > >>>>> On 2020May 14, at 14:27, Henry Rich <[email protected]> wrote: > >>>>> > >>>>> This beta has a few language changes: > >>>>> > >>>>> * Fold (u F:. v) has been redefined to execute v first, then, u > >>>>> > >>>>> * u0`u1`...@v now has infinite rank. v is executed first to decide > the > >>>> cell-rank, and which verb is to be executed for each cell; then the u > >> verbs > >>>> are executed, either one cell at a time or in one call to each verb, > to > >>>> execute on a list of cells at once. Therefore, each u verb needs to be > >> able > >>>> to handle single cell or a list of input cells. > >>>>> > >>>>> * semiduals are supported at last: x u&.:(v`a:) y applies v only to > x, > >>>> and x u&.:(a:`v) y applies v only to y. > >>>>> > >>>>> Henry Rich > >>>>> > >>>>> On 5/14/2020 3:49 PM, Eric Iverson wrote: > >>>>>> The first 902 beta release is available for windows/macos/linux. > >>>>>> > >>>>>> https://code.jsoftware.com/wiki/System/Installation/J902 > >>>>>> > >>>>>> Availability of new releases will be announced here. > >>>>>> > >>>>>> Questions, problems, etc should be addressed to the beta forum. > >>>>>> > ---------------------------------------------------------------------- > >>>>>> For information about J forums see > >> http://www.jsoftware.com/forums.htm > >>>>> > >>>>> > >>>>> -- > >>>>> This email has been checked for viruses by AVG. > >>>>> https://www.avg.com > >>>>> > >>>>> > ---------------------------------------------------------------------- > >>>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
