10 timespacex '( %. + / . * ] ) aa'[ aa =.? 200 200 $ 40000 0.0308774 3.80518e6
slightly slower on avx806 vs 805. 0.0286737 3.80518e6 Exact memory match suggests maybe the processor doesn't support a specific avx feature, and the code aborts to "downhandle" the operation? ----- Original Message ----- From: Henry Rich <henryhr...@gmail.com> To: programm...@jsoftware.com Sent: Sunday, March 12, 2017 7:26 PM Subject: Re: [Jprogramming] first 806 beta vailable Very surprising that there is no improvement in matrix multiply, when the processor uses AVX instructions. This processor has a large L2 cache. How large were the matrices? Henry Rich On 3/12/2017 7:20 PM, 'Pascal Jasmin' via Programming wrote: > on older AM A8-5500 most of the benchmark improvements (compared to 805) are > higher (minimally) than Eric reported. floating point a bit less, but > float!.0 a bit more. No improvement in matrix multiply. > > > > > ----- Original Message ----- > From: 'Mike Day' via Programming <programm...@jsoftware.com> > To: programm...@jsoftware.com > Sent: Sunday, March 12, 2017 1:44 PM > Subject: Re: [Jprogramming] first 806 beta vailable > > I didn't know I had avx available on this machine, an AMD A10-7300, > running Windows 10. Anyway, J806 JVERSION says I do! > > I'd have a go at running the benchmarks, but wonder if there's a script > available > to save doing them "by hand".... > > JVERSION > > Engine: j806/j64avx/windows > > Beta-1: commercial/2017-03-09T09:10:13 > > Library: 8.06.01 > > Qt IDE: 1.5.3/5.6.2 > > Platform: Win 64 > > Installer: J806 install > > InstallPath: c:/d/j806 > > Contact: www.jsoftware.com > > Mike > > On 11/03/2017 22:44, Eric Iverson wrote: >> The first 806 beta is available. >> >> 806 will be primarily a performance release. This is the first J release >> where hardware features are directly used for performance. Previous >> releases depended on excellent code and smart algorithms. With Advanced >> Vector Extensions (AVX) Intel finally (first hardware released in 2011) has >> hardware that seems to have J, at least partially, in mind. >> >> A rough benchmark report is at the end of this message. Some of the results >> are already impressive and there may be more to come. >> >> Improvments in i. and related areas are important in J, but faster >> crunching is usually overwhelmed by all the housekeeping in an application. >> Some things run 10 times faster, but your application won't. >> >> It would be a shame to have non-trivial vector capabilities in the hardware >> and for J to not take advantage. AVX2 machines have just hit the shelves >> there are more goodies there. >> >> It has been a long time since we've been able to brag of a factor of 10 >> speedup in a primitive. >> >> Please get involved in the beta program, it helps make a better product for >> everyone. >> >> And give big thanks to Henry Rich for this core JE development! >> >> *** >> Follow web site download links to Installation/Beta. Do appropriate >> download from j806/install folder and then follow the Archive install >> instructions. These are 805 release instructions, so be careful to use 806 >> as appropriate. >> >> The install contains a default non-avx JE binary as well as an avx JE >> binary. The launch icons will run the non-avx binary. Make sure the install >> is stable and when you are ready, switch to the avx binary with the >> following steps: >> >> load'~addons/ide/jhs/installer.ijs' >> avx'' NB. follow the instructions >> >> If your hardware/OS supports avx, then the next time you start 806 it will >> use the avx binary. Verify this by checking 9!:14'' (you will see avx in >> the string). >> >> *** preliminary benchmark report >> >> 2017 3 11 16 10 >> j806/j64avx/linux/beta-1/commercial/www.jsoftware.com/2017-03-09T10:14:43 >> i7-7700Q >> >> N in tables below indicate new avx JE runs N times faster than 805 >> b=: (<.-:#a)+ c ?. c [ a=: C ?. C NB. intsr >> b=: (c?.#a){a [ a=: C ?@$ <:2^63 NB. intbr >> b=: (c?.#a){a [ a=: >,.~":each <"0 [C ?@$ <:2^63 NB. char >> b=: 0.1+(c?.#a){a [ a=: 0.1+C ?@$ <:2^63 NB. float >> intsr (small range) special code avoids hash - intbr (big range) >> float0 tests use !.0 where appropriate >> >> 'C c'=: 10000000 1000 >> intsr intbr char float float0 test >> 1.3 2.0 4.1 1.0 3.5 a i. a >> 12.8 10.4 25.5 2.1 20.2 a i. b >> 3.4 7.3 8.6 5.1 10.7 b i. a >> 5.2 8.0 9.0 5.3 12.9 a e. b >> 6.4 10.4 25.3 2.1 20.2 b e. a >> 5.3 8.8 9.5 5.1 13.1 a (+/@:e.) b >> 4.4 6.4 9.4 38.2 12.9 a (e. i. 1:) b >> 1.7 1.9 3.8 1.0 1.0 ~.a >> 1.6 2.1 4.1 1.0 1.0 ~:a >> 1.1 0.9 1.4 1.1 0.0 /:a >> 1.2 0.6 1.3 1.0 0.0 /:~a >> >> 'C c'=: 100000 1000 >> intsr intbr char float float0 test >> 1.5 3.5 5.3 1.1 4.6 a i. a >> 3.4 4.7 9.3 3.1 7.1 a i. b >> 3.9 8.1 8.7 5.0 12.1 b i. a >> 4.4 7.5 9.1 5.3 12.6 a e. b >> 2.6 4.8 9.2 3.1 6.8 b e. a >> 4.4 8.4 9.5 5.2 12.9 a (+/@:e.) b >> 1.5 4.3 7.8 20.7 12.7 a (e. i. 1:) b >> 1.0 3.3 4.7 1.1 1.1 ~.a >> 1.3 3.5 5.2 1.2 1.1 ~:a >> 1.7 1.3 1.3 1.2 0.0 /:a >> 1.6 1.4 1.3 1.2 0.0 /:~a >> >> matrix multiply >> 4.5 a +/ . * b >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > ---------------------------------------------------------------------- > 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