without -DC_AVX=1 , it will build a non-avx version, and your benchmark result was expected.Ignore those 0.4 since the actual execution time were very small and unstable for comparison.
If your cpu supports avx, try again with cflags -DC_AVX=1 -mavx which are used in the j64avx target. On 12 Apr, 2017 8:33 am, "Xiao-Yong Jin" <[email protected]> wrote: 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
