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
