JIT JS Bounty - update
  • ASiegel
    Posts: 1370 from 2003/2/15
    From: Central Europe
    Quote:

    NewSense wrote:
    Quote:

    ASiegel wrote: Surely there is also no harm in asking Bill Gates for the Windows source code.

    My thought is that all of code that relates to TenFourFox may be useful to developers for OWB

    With regard to Odyssey, it is generally not.

    Quote:

    as a reference, AND , as Andreas_Wolf has since pointed out

    Unlike you, I already knew the license as well as the fact that it is based on Firefox (ESR). The Firefox sources have always been open.

    Quote:

    but the whole code that Cameron Kaiser has worked on, as he may be sympathetic to our cause as there are not so/as many PPC systems left to utilise any PPC code, let alone his PPC code, and he may like to see it still get utilised by others, and offer us some help in understanding it, implementing it for our benefit, considering all the hours of hard work he must have put in to get it to where it is now, rather than he see it end up in the digital data wasteland, that is becoming larger year by year.

    If you would like to see Cameron Kaiser's work be used on other platforms, please feel free to find volunteers who will port Firefox / TenFourFox to MorphOS. Before you do, you might want to try it on MacOS first, however.

    Quote:

    I am not, and I feel you must be in the same position - unsure as to whether it makes any sense or not, to ask the question, because if it is not asked how can anyone know if the question was worth asking or not until it has been asked? :-?

    You did not ask a question. If you had asked "Is there any value in the TenFourFox source code with regard to MorphOS?", that would have been perfectly fine.

    Instead, you specifically addessed the MorphOS development team and requested that they use their personal free time to contact another developer simply because you instinctively felt that it must be a good idea...
  • »22.06.18 - 09:56
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12085 from 2003/5/22
    From: Germany
    > My thought is that all of code that relates to TenFourFox
    > may be useful to developers for OWB, as a reference

    I don't think this is the case. As the browser components are heavily intertwined, being able to use code from one browser for another browser based on a completely different code base is more the exception rather than the rule, even as reference.

    > the whole code that Cameron Kaiser has worked on, as he may be
    > sympathetic to our cause as there are not so/as many PPC systems
    > left to utilise any PPC code, let alone his PPC code

    TenFourFox is written in C++, not in "PPC code". Exceptions to this are the JavaScript JIT compiler and AltiVec/VMX vectorizations of some decoders (audio/video, images etc.).

    > I am not [...] unsure as to whether it makes any sense or not

    ;-)
  • »22.06.18 - 10:53
    Profile
  • 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 - 11: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 - 12: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 - 12: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 - 13: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 - 13:09
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Stevo
    Posts: 890 from 2004/1/24
    From: #AmigaZeux
    \o/
    ---
    http://www.iki.fi/sintonen/logs/its_only_football.txt
  • »18.07.18 - 14:28
    Profile
  • MorphOS Developer
    zukow
    Posts: 643 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 - 16:32
    Profile Visit Website
  • ASiegel
    Posts: 1370 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 - 16: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 - 10: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 - 11: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 - 11: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 - 14: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 - 16: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 - 16: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 - 16: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 - 17: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 - 17: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 - 21: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 - 22: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 - 09: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 - 11: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 - 13:25
    Profile Visit Website
  • ASiegel
    Posts: 1370 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 - 14:09
    Profile