How do you guys compile the jengine? I tried to compile the source code from github, and got the following benchmark. I used gcc6.3 from macports. I also tried the clang from xcode, but didn't see much difference. I tried a few optimization levels, O1, O2, O3, Ofast, and turning off some aggressive optimizations to pass the tsu.ijs. The following is from -march=native -Ofast -fno-finite-math-only -fno-tree-loop-vectorize -fwrapv -fno-strict-aliasing It seems that the intsr and intbr are much worse in the binary I compiled. What could be the possible reason for my result here?
2017 4 11 19 2 Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz j806/j64avx/darwin/beta-3/commercial/www.jsoftware.com/2017-04-10T18:24:03 j806/j64avx/darwin/beta/GPL3/jxy/2017-04-11T14:38:44 intsr (small range) special code avoids hash - intbr (big range) float0 tests use !.0 where appropriate N in tables below indicate avx JE runs N times faster than 805 'type' set 1e7 1e3 intsr intbr char float float0 test 1.0 1.0 1.2 1.0 1.1 a i. a 1.2 1.0 1.3 1.0 1.0 a i. b 0.7 1.0 1.3 1.0 1.0 b i. a 0.4 0.9 1.2 1.0 1.0 a e. b 1.1 0.9 1.4 1.1 1.0 b e. a 0.4 0.9 1.4 1.0 1.1 a (+/@:e.) b 0.4 1.0 1.3 0.8 1.0 a (e. i. 1:) b 0.9 0.9 1.2 1.0 1.0 ~.a 0.7 0.9 1.3 1.0 1.0 ~:a 1.0 1.0 1.3 1.0 1.0 /:a 1.0 1.0 1.0 1.0 0.9 /:~a 'type' set 1e5 1e3 intsr intbr char float float0 test 0.9 1.0 1.0 0.9 1.0 a i. a 1.2 0.9 1.2 1.0 1.0 a i. b 0.5 0.9 1.2 1.0 1.1 b i. a 0.4 0.8 1.2 1.0 1.0 a e. b 1.0 0.9 1.2 1.0 1.0 b e. a 0.4 0.9 1.2 1.0 1.1 a (+/@:e.) b 0.8 1.0 1.3 1.0 1.0 a (e. i. 1:) b 0.9 0.9 1.0 1.0 1.0 ~.a 0.8 0.9 1.1 0.9 0.9 ~:a 1.0 1.0 1.1 1.0 1.0 /:a 1.0 1.0 1.0 1.0 1.0 /:~a 'type' set '1e3' mmint mmfloat mmcomplex test 1.0 0.9 1.0 a +/ . * b > On Apr 11, 2017, at 5:48 PM, Eric Iverson <[email protected]> wrote: > > It is no possible to upgrade through pacman. The onlyl way is to install > the zip release. > > The previous release included avx and non-avx binaries. The new version > includes only the avx version. This reflects what will probably be in the > final release. > > On Tue, Apr 11, 2017 at 6:16 PM, 'Pascal Jasmin' via Programming < > [email protected]> wrote: > >> The original beta included a load script, and verb execution that IIRC >> switched j.dll to "avx.dll" >> >> >> Those instructions could not be found in the web instructions. >> >> Also, is it possible to upgrade beta through pacman? >> >> >> ________________________________ >> From: Eric Iverson <[email protected]> >> To: Programming forum <[email protected]> >> Sent: Tuesday, April 11, 2017 3:18 PM >> Subject: [Jprogramming] 806 beta-3 available >> >> >> >> 806 beta-3 available. >> >> >> Comments from original announcement are repeated here for emphasis. >> >> >> 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 partly, in mind. >> >> >> A rough benchmark report is at the end of this message. It has been a long >> >> time since we've been able to brag of a factor of 10 speedup in a >> primitive. >> >> >> Improvements 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. >> >> >> 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. There have been changes. Please follow the >> >> directions and report any problems. >> >> >> These releases are only for windows/osx/linux intel/amd 64 and include only >> >> an avx binary. >> >> >> The J Engine load will fail if the hardware/OS does not support avx. >> >> >> *** benchmark report - ~addons/ide/jhs/misc/avx.ijs >> >> >> 2017 4 11 15 1 >> >> Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz >> >> j805/j64/linux/release-a/commercial/www.jsoftware.com/2017-02-26T16:47:20 >> >> j806/j64avx/linux/beta-3/commercial/www.jsoftware.com/2017-04-10T17:51:14 >> >> intsr (small range) special code avoids hash - intbr (big range) >> >> float0 tests use !.0 where appropriate >> >> N in tables below indicate avx JE runs N times faster than 805 >> >> >> 'type' set 1e7 1e3 >> >> intsr intbr char float float0 test >> >> 1.3 2.0 4.1 2.1 3.6 a i. a >> >> 12.9 10.7 25.8 2.1 20.5 a i. b >> >> 3.4 7.3 8.6 6.7 10.6 b i. a >> >> 5.3 8.2 9.1 7.2 13.2 a e. b >> >> 6.4 10.6 25.9 2.1 20.4 b e. a >> >> 5.3 8.8 9.5 7.0 13.2 a (+/@:e.) b >> >> 4.4 6.5 9.6 53.4 13.2 a (e. i. 1:) b >> >> 1.7 1.9 3.8 1.7 1.7 ~.a >> >> 1.6 2.1 4.1 2.2 2.0 ~:a >> >> 1.1 1.3 1.3 1.2 1.2 /:a >> >> 1.3 2.1 2.2 1.9 1.9 /:~a >> >> >> 'type' set 1e5 1e3 >> >> intsr intbr char float float0 test >> >> 2.0 3.5 5.3 2.4 4.7 a i. a >> >> 4.2 4.7 9.2 3.2 6.9 a i. b >> >> 5.4 8.0 8.9 5.2 11.7 b i. a >> >> 5.8 7.7 9.3 6.7 12.7 a e. b >> >> 4.1 4.7 9.2 3.2 6.9 b e. a >> >> 5.7 8.3 9.7 6.5 12.5 a (+/@:e.) b >> >> 2.0 4.0 7.8 21.0 12.6 a (e. i. 1:) b >> >> 1.5 3.3 4.5 1.9 1.9 ~.a >> >> 1.3 3.4 5.2 2.9 2.9 ~:a >> >> 2.1 2.1 1.3 1.9 1.9 /:a >> >> 1.7 2.3 1.4 2.1 2.1 /:~a >> >> >> 'type' set '1e3' >> >> mmint mmfloat mmcomplex test >> >> 27.6 23.7 17.9 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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
