JIT JS Bounty - update
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    It's been a bit more than a month since I last posted, and obviously my last prediction didn't come true. The remaining 1.24/1.25 bugs were quite a bit tougher to debug than I had expected, but we're getting closer, and it's ready for the first round of public testing.

    First the caveats:

    1) This still only has the first level JIT enabled, as the second level still needs some debug work. The first level of JIT is not super fast compared to the non-JIT version, so it won't feel super snappy compared to before. Don't expect miracles.

    2) Some things might still be broken. If you discover things that don't work with the JIT version, but do work with the non-JIT version, please let me know. Let me just emphasise that I can't do anything about things that also don't work with the non-JIT version right now, so I'm only looking for reports of things that work with the non-JIT version but don't with the JIT version.

    3) You need OWB 1.25 (from MorphOS 3.11) already installed. Extract the archive in your OWB directory, and then run OWB-JIT to test the JIT version.

    And then the link: https://bigfoot.morphos-team.net/test/OWB-JIT.lha

    I'm not done working on this, and there will be more updates in the future, hopefully with the second level JIT enabled as well at the very least. However, I will be unable to do any work on OWB for the next 3-4 weeks, so any further updates will happen in the second half of August at the earliest.

    [ Edited by bigfoot 18.07.2018 - 13:35 ]
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »18.07.18 - 10:47
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    Awesome news, Thanks Bigfoot! I can't wait to try this at home (unfortunately I'll have to wait about 9 hours, darn).
  • »18.07.18 - 11:22
    Profile
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    As I mentioned, please don't expect miracles :)
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »18.07.18 - 11:36
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    Quote:

    bigfoot wrote:
    As I mentioned, please don't expect miracles :)


    No kidding. First miracle is that it's ready (well, sort of, I know). And still more miracles to come! This is going to be a good year for MorphOS, that's for sure.
  • »18.07.18 - 12:01
    Profile
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    Haha, I meant speed wise :) The first level of JIT is quite naive in its approach, so it's not very fast, and Javascript is only a part of the browsing experience.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »18.07.18 - 12:09
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Stevo
    Posts: 888 from 2004/1/24
    From: #AmigaZeux
    \o/
    ---
    http://www.iki.fi/sintonen/logs/its_only_football.txt
  • »18.07.18 - 13:28
    Profile
  • MorphOS Developer
    zukow
    Posts: 642 from 2005/2/9
    From: Poland
    Seems to be stable. Some things are slower, some faster:

    JIT VERSION:
    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 3523.1ms +/- 1.6%
    --------------------------------------------

    3d: 462.2ms +/- 5.0%
    cube: 111.8ms +/- 5.1%
    morph: 120.8ms +/- 5.2%
    raytrace: 229.6ms +/- 5.5%

    access: 666.0ms +/- 4.6%
    binary-trees: 47.8ms +/- 5.7%
    fannkuch: 331.7ms +/- 8.2%
    nbody: 272.9ms +/- 2.3%
    nsieve: 13.6ms +/- 4.4%

    bitops: 284.5ms +/- 2.4%
    3bit-bits-in-byte: 23.9ms +/- 4.1%
    bits-in-byte: 33.2ms +/- 3.5%
    bitwise-and: 43.3ms +/- 12.3%
    nsieve-bits: 184.1ms +/- 0.5%

    controlflow: 14.1ms +/- 4.4%
    recursive: 14.1ms +/- 4.4%

    crypto: 196.9ms +/- 0.8%
    aes: 116.4ms +/- 0.9%
    md5: 43.8ms +/- 1.3%
    sha1: 36.7ms +/- 2.1%

    date: 260.2ms +/- 0.5%
    format-tofte: 121.6ms +/- 0.5%
    format-xparb: 138.6ms +/- 0.7%

    math: 226.9ms +/- 0.8%
    cordic: 61.7ms +/- 2.0%
    partial-sums: 100.6ms +/- 1.3%
    spectral-norm: 64.6ms +/- 1.5%

    regexp: 655.3ms +/- 0.1%
    dna: 655.3ms +/- 0.1%

    string: 757.0ms +/- 1.6%
    base64: 86.6ms +/- 0.8%
    fasta: 137.3ms +/- 0.6%
    tagcloud: 183.6ms +/- 5.8%
    unpack-code: 264.6ms +/- 0.2%
    validate-input: 84.9ms +/- 1.2%


    NORMAL VERSION
    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 3092.4ms +/- 0.3%
    --------------------------------------------

    3d: 302.2ms +/- 0.7%
    cube: 85.8ms +/- 1.1%
    morph: 108.3ms +/- 1.8%
    raytrace: 108.1ms +/- 1.2%

    access: 371.6ms +/- 3.0%
    binary-trees: 34.4ms +/- 1.8%
    fannkuch: 191.9ms +/- 6.1%
    nbody: 106.7ms +/- 0.3%
    nsieve: 38.6ms +/- 1.0%

    bitops: 416.4ms +/- 1.2%
    3bit-bits-in-byte: 65.8ms +/- 7.5%
    bits-in-byte: 79.0ms +/- 0.6%
    bitwise-and: 132.4ms +/- 0.4%
    nsieve-bits: 139.2ms +/- 0.4%

    controlflow: 31.5ms +/- 1.2%
    recursive: 31.5ms +/- 1.2%

    crypto: 166.9ms +/- 1.6%
    aes: 79.6ms +/- 1.2%
    md5: 45.5ms +/- 2.9%
    sha1: 41.8ms +/- 1.9%

    date: 189.8ms +/- 0.8%
    format-tofte: 84.0ms +/- 1.2%
    format-xparb: 105.8ms +/- 0.7%

    math: 309.8ms +/- 0.4%
    cordic: 137.1ms +/- 0.4%
    partial-sums: 103.1ms +/- 0.9%
    spectral-norm: 69.6ms +/- 1.3%

    regexp: 686.3ms +/- 0.2%
    dna: 686.3ms +/- 0.2%

    string: 617.9ms +/- 0.4%
    base64: 82.4ms +/- 1.1%
    fasta: 114.6ms +/- 1.5%
    tagcloud: 138.3ms +/- 0.6%
    unpack-code: 210.4ms +/- 0.7%
    validate-input: 72.2ms +/- 1.5%

    [ Edited by zukow 18.07.2018 - 17:38 ]
  • »18.07.18 - 15:32
    Profile Visit Website
  • ASiegel
    Posts: 1369 from 2003/2/15
    From: Central Europe
    @ zukow

    Not all applications are suitable for JIT compilation, of course. Things like Mandelbrot fractal generators work quite well already, though. The JIT gives a huge boost for these type of applications (up to 3x speed up in my tests).

    As for your results specifically, I have literally seen bigger differences between subsequent benchmark runs using the exact same browser version and Javascript interpreter.
  • »18.07.18 - 15:46
    Profile
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    The linked archive has been updated with a new version that re-enables an optimisation that had accidentally been disabled in the previous release.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »19.07.18 - 09:46
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    Quote:

    bigfoot wrote:
    The linked archive has been updated with a new version that re-enables an optimisation that had accidentally been disabled in the previous release.


    Akhem...

    Code:
    Forbidden
    You don't have permission to access /test/OWB-JIT.lha on this server.
    Apache Server at bigfoot.morphos-team.net Port 443
  • »19.07.18 - 10:53
    Profile
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    Fixed, thanks :)
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »19.07.18 - 10:56
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    Quote:

    bigfoot wrote:
    Fixed, thanks :)


    It's faster. Tested on 1,33 GHz iBook G4 and it did the Sunspider test in 4203 ms (vs 4754,3 without JIT). More benchmarks to come.
  • »19.07.18 - 13:29
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    Just for reference what version of Sunspider ?
  • »19.07.18 - 15:33
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    Quote:

    Spectre660 wrote:
    Just for reference what version of Sunspider ?


    1.0.2
  • »19.07.18 - 15:54
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    Thanks.
    Will Post some X5000/020 Linux PPC results for baseline comparisons .
  • »19.07.18 - 15:59
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    Qupzilla

    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 3180.7ms +/- 0.3%
    --------------------------------------------

    3d: 300.0ms +/- 0.5%
    cube: 84.1ms +/- 0.3%
    morph: 109.6ms +/- 0.5%
    raytrace: 106.3ms +/- 1.4%

    access: 354.0ms +/- 0.2%
    binary-trees: 41.0ms +/- 0.8%
    fannkuch: 180.3ms +/- 0.3%
    nbody: 89.0ms +/- 0.4%
    nsieve: 43.7ms +/- 0.8%

    bitops: 557.1ms +/- 1.4%
    3bit-bits-in-byte: 74.3ms +/- 6.0%
    bits-in-byte: 95.8ms +/- 1.6%
    bitwise-and: 222.5ms +/- 1.1%
    nsieve-bits: 164.5ms +/- 0.3%

    controlflow: 58.0ms +/- 0.0%
    recursive: 58.0ms +/- 0.0%

    crypto: 192.9ms +/- 0.7%
    aes: 74.8ms +/- 0.9%
    md5: 60.7ms +/- 1.0%
    sha1: 57.4ms +/- 0.9%

    date: 185.3ms +/- 1.0%
    format-tofte: 88.6ms +/- 0.8%
    format-xparb: 96.7ms +/- 1.6%

    math: 378.2ms +/- 0.4%
    cordic: 144.9ms +/- 0.8%
    partial-sums: 150.2ms +/- 0.4%
    spectral-norm: 83.1ms +/- 0.3%

    regexp: 584.7ms +/- 0.2%
    dna: 584.7ms +/- 0.2%

    string: 570.5ms +/- 0.4%
    base64: 88.4ms +/- 2.1%
    fasta: 135.6ms +/- 0.5%
    tagcloud: 124.3ms +/- 0.4%
    unpack-code: 147.4ms +/- 0.5%
    validate-input: 74.8ms +/- 0.6%
  • »19.07.18 - 16:03
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    Midori

    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 3161.8ms +/- 5.2%
    --------------------------------------------

    3d: 356.3ms +/- 0.5%
    cube: 83.4ms +/- 0.9%
    morph: 156.7ms +/- 0.3%
    raytrace: 116.2ms +/- 1.3%

    access: 381.1ms +/- 0.9%
    binary-trees: 43.1ms +/- 0.5%
    fannkuch: 202.1ms +/- 1.7%
    nbody: 88.3ms +/- 0.4%
    nsieve: 47.6ms +/- 0.8%

    bitops: 494.9ms +/- 0.3%
    3bit-bits-in-byte: 82.3ms +/- 0.4%
    bits-in-byte: 104.7ms +/- 0.3%
    bitwise-and: 136.0ms +/- 0.0%
    nsieve-bits: 171.9ms +/- 0.6%

    controlflow: 46.7ms +/- 0.7%
    recursive: 46.7ms +/- 0.7%

    crypto: 187.2ms +/- 0.4%
    aes: 77.1ms +/- 0.3%
    md5: 57.1ms +/- 0.9%
    sha1: 53.0ms +/- 0.0%

    date: 223.6ms +/- 0.8%
    format-tofte: 103.6ms +/- 0.5%
    format-xparb: 120.0ms +/- 1.2%

    math: 264.5ms +/- 61.4%
    cordic: 69.1ms +/- 234.8%
    partial-sums: 117.2ms +/- 0.3%
    spectral-norm: 78.2ms +/- 0.4%

    regexp: 575.2ms +/- 0.2%
    dna: 575.2ms +/- 0.2%

    string: 632.3ms +/- 0.2%
    base64: 98.2ms +/- 0.7%
    fasta: 116.2ms +/- 0.4%
    tagcloud: 139.2ms +/- 0.6%
    unpack-code: 200.4ms +/- 0.4%
    validate-input: 78.3ms +/- 1.4%
  • »19.07.18 - 16:04
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    koszer
    Posts: 1246 from 2004/2/8
    From: Poland
    OWB-JIT on PowerMac G5 2,7 GHz:

    Code:
    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 2430.1ms +/- 0.6%
    --------------------------------------------

    3d: 280.7ms +/- 2.9%
    cube: 91.1ms +/- 4.3%
    morph: 98.3ms +/- 5.8%
    raytrace: 91.3ms +/- 4.4%

    access: 317.1ms +/- 2.4%
    binary-trees: 12.8ms +/- 2.4%
    fannkuch: 233.5ms +/- 2.7%
    nbody: 52.9ms +/- 2.2%
    nsieve: 17.9ms +/- 14.4%

    bitops: 244.5ms +/- 2.3%
    3bit-bits-in-byte: 21.4ms +/- 6.9%
    bits-in-byte: 28.1ms +/- 4.9%
    bitwise-and: 42.3ms +/- 4.1%
    nsieve-bits: 152.7ms +/- 3.3%

    controlflow: 12.3ms +/- 18.6%
    recursive: 12.3ms +/- 18.6%

    crypto: 153.8ms +/- 2.1%
    aes: 90.5ms +/- 1.2%
    md5: 35.4ms +/- 8.6%
    sha1: 27.9ms +/- 3.5%

    date: 170.5ms +/- 2.5%
    format-tofte: 79.9ms +/- 5.6%
    format-xparb: 90.6ms +/- 3.1%

    math: 160.3ms +/- 2.2%
    cordic: 54.8ms +/- 5.4%
    partial-sums: 63.8ms +/- 1.4%
    spectral-norm: 41.7ms +/- 4.6%

    regexp: 568.4ms +/- 0.9%
    dna: 568.4ms +/- 0.9%

    string: 522.5ms +/- 1.1%
    base64: 34.1ms +/- 9.0%
    fasta: 101.8ms +/- 4.3%
    tagcloud: 123.5ms +/- 2.6%
    unpack-code: 216.8ms +/- 2.0%
    validate-input: 46.3ms +/- 5.0%
  • »19.07.18 - 20:28
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    X5000/020 Odyssey-JIT MorphOS 3.11

    ============================================
    RESULTS (means and 95% confidence intervals)
    --------------------------------------------
    Total: 2679.3ms +/- 0.1%
    --------------------------------------------

    3d: 310.8ms +/- 0.5%
    cube: 96.1ms +/- 0.9%
    morph: 118.4ms +/- 0.5%
    raytrace: 96.3ms +/- 0.8%

    access: 404.6ms +/- 0.2%
    binary-trees: 15.3ms +/- 2.3%
    fannkuch: 302.1ms +/- 0.2%
    nbody: 65.2ms +/- 0.7%
    nsieve: 22.0ms +/- 0.0%

    bitops: 274.1ms +/- 0.3%
    3bit-bits-in-byte: 28.7ms +/- 1.7%
    bits-in-byte: 28.7ms +/- 1.2%
    bitwise-and: 44.5ms +/- 0.8%
    nsieve-bits: 172.2ms +/- 0.5%

    controlflow: 18.0ms +/- 0.0%
    recursive: 18.0ms +/- 0.0%

    crypto: 166.0ms +/- 0.7%
    aes: 100.6ms +/- 0.7%
    md5: 35.8ms +/- 1.6%
    sha1: 29.6ms +/- 1.7%

    date: 181.8ms +/- 0.6%
    format-tofte: 85.3ms +/- 0.8%
    format-xparb: 96.5ms +/- 0.8%

    math: 178.2ms +/- 0.3%
    cordic: 60.6ms +/- 0.6%
    partial-sums: 71.2ms +/- 0.4%
    spectral-norm: 46.4ms +/- 0.8%

    regexp: 605.1ms +/- 0.1%
    dna: 605.1ms +/- 0.1%

    string: 540.7ms +/- 0.2%
    base64: 37.3ms +/- 1.6%
    fasta: 118.2ms +/- 0.5%
    tagcloud: 125.9ms +/- 0.3%
    unpack-code: 211.2ms +/- 0.1%
    validate-input: 48.1ms +/- 0.5%
  • »19.07.18 - 21:18
    Profile
  • MorphOS Developer
    bigfoot
    Posts: 508 from 2003/4/11
    With the Octane test, but with failing tests and regular expressions disabled, I get a score of 657 without JIT and 1089 with JIT.

    https://bigfoot.morphos-team.net/test/octane-without-regexp/

    Keep in mind that performance will improve in the future when I get a bit more time to work on this. This version is just the first version that's stable enough for general use.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »20.07.18 - 08:58
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Spectre660
    Posts: 275 from 2015/6/30
    X5000/20

    AmigaOS 4.1FE
    Odyssey = 498
    Timberwolf = 424

    Ubuntu 16.04
    Qupzilla = 690
    Midori = 590


    [ Edited by Spectre660 20.07.2018 - 07:27 ]
  • »20.07.18 - 10:14
    Profile
  • Leo
  • Order of the Butterfly
    Order of the Butterfly
    Leo
    Posts: 417 from 2003/8/18
    To put it into perspective, here are some results on a phone & PC:

    - Android 8 / Chrome on LG G6 ARM Kyro 2.35Ghz (Feb 2017): 11 353
    - Linux 4.13.0 / Chrome on Intel Core i5 4590 3.7Ghz (4th generation, 2014): 36 456

    [ Edited by Leo 20.07.2018 - 12:35 ]
    Nothing hurts a project more than developers not taking the time to let their community know what is going on.
  • »20.07.18 - 12:25
    Profile Visit Website
  • ASiegel
    Posts: 1369 from 2003/2/15
    From: Central Europe
    Apple iPad 2 bought in 2012: 1743
    2015 Telekom Android tablet with Mediatek ARM chip: 2232

    Mind you, both devices run either three-stage or four-stage Javascript JIT compilers... As stated, Odyssey currently has a single stage and there are plans to further improve it.
  • »20.07.18 - 13:09
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    redrumloa
    Posts: 1424 from 2003/4/13
    I need proof bigfoot is human. From what I can tell he is a machine. A very efficient machine at that.
  • »22.07.18 - 04:01
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    ernsteiswuerfel
    Posts: 545 from 2015/6/18
    From: Funeralopolis
    OWB 1.25-JIT freezes at loading this page at about 322 KiB, whereas OWB 1.25 does not. Just tried a 2nd time to be sure.
    Talos II. [Gentoo Linux] | PMac G5 11,2. PMac G4 3,6. PBook G4 5,8. [MorphOS 3.18 / Gentoo Linux] | Vampire V4 SA [ApolloOS / Amiga OS 3.2.2]
  • »12.08.18 - 00:28
    Profile