First cut:

Processor Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz 2.60 GHz

┌───────────────────────────────────────────────────┐
│┌──────┬──────┬──────┬──────┬──────┬──────────────┐│
││intsr │intbr │char  │float │float0│test          ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.42│  1.86│  3.33│  1.24│  3.29│a i. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││ 18.16│ 12.73│ 22.90│  1.86│ 24.42│a i. b        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.92│  4.04│  6.33│  5.03│  6.17│b i. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  3.53│  5.53│  7.68│  5.92│  8.77│a e. b        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││ 11.71│ 12.55│ 24.97│  1.95│ 23.80│b e. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  4.35│  6.00│  8.53│  5.84│  9.29│a (+/@:e.) b  ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  0.94│  6.24│  9.45│ 36.84│  8.73│a (e. i. 1:) b││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  2.68│  1.77│  2.60│  1.22│  1.26│~.a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  3.25│  1.85│  3.56│  1.32│  1.34│~:a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.11│  1.03│  1.34│  1.10│  1.12│/:a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.74│  1.06│  1.27│  1.15│  1.02│/:~a          ││
│└──────┴──────┴──────┴──────┴──────┴──────────────┘│
├───────────────────────────────────────────────────┤
│┌──────┬──────┬──────┬──────┬──────┬──────────────┐│
││intsr │intbr │char  │float │float0│test          ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  2.50│  2.66│  4.84│  1.61│  4.42│a i. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  7.29│  5.99│ 11.64│  3.93│ 10.54│a i. b        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  2.04│  3.81│  6.16│  4.72│  6.08│b i. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  4.49│  5.96│  8.01│  5.81│  8.92│a e. b        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  3.03│  6.29│ 12.06│  4.50│ 10.56│b e. a        ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  4.57│  5.37│  8.65│  5.99│  9.10│a (+/@:e.) b  ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.95│  2.92│  7.54│ 17.17│  9.60│a (e. i. 1:) b││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.28│  3.19│  3.29│  1.46│  1.49│~.a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.55│  4.00│  5.92│  1.52│  1.58│~:a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  1.71│  1.28│  1.35│  1.31│  1.38│/:a           ││
│├──────┼──────┼──────┼──────┼──────┼──────────────┤│
││  4.22│  1.32│  1.21│  1.32│  1.27│/:~a          ││
│└──────┴──────┴──────┴──────┴──────┴──────────────┘│
├───────────────────────────────────────────────────┤
│matrix multiply                                    │
├───────────────────────────────────────────────────┤
│  4.25                                             │
└───────────────────────────────────────────────────┘

David Mitchell

On 3/11/2017 17: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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to