ARMv8 BitBLT speedups provided by RPi/Ben Avison

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ARMv8 BitBLT speedups provided by RPi/Ben Avison

timrowledge
 
Our friends in Cambridge (Real Cambridge, not Backup Cambridge) have spent a nice chunk of money to bring the ARM32 bitblt speedups they provided in '14/5/6 into the ARMv8 world. Quite a few microbenchmarks covering the tests Ben did (and he wrote a testing framework that ran some 10s of thousands of tests) are improved by an order of magnitude, some by 30X and one by 57X !

All the code to date is pushed to
  https://github.com/bavison/opensmalltalk-vm/tree/Ben
with the latest version of the test harnesses at
  https://github.com/bavison/SqueakBitBltTest

Look for items changed in the last few days ie 25th april or later. I haven't had a chance to do more than glance as yet. I *suspect* Ben has manually edited the generated BitBltPlugin.c file, which will mean doing some diffing and back-porting into Slang. Maybe.

I, for one, welcome our new v8 blit overlords.

tim
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"#define QUESTION ((bb) || !(bb))  - Shakespeare."


Reply | Threaded
Open this post in threaded view
|

Re: ARMv8 BitBLT speedups provided by RPi/Ben Avison

marcel.taeumel
 
:-O

+1 !!! :-)

I haven't looked into it. Would be nice if it remained compatible with upstream. There is no pull request yet.

Best,
Marcel

Am 30.04.2021 06:38:37 schrieb tim Rowledge <[hidden email]>:


Our friends in Cambridge (Real Cambridge, not Backup Cambridge) have spent a nice chunk of money to bring the ARM32 bitblt speedups they provided in '14/5/6 into the ARMv8 world. Quite a few microbenchmarks covering the tests Ben did (and he wrote a testing framework that ran some 10s of thousands of tests) are improved by an order of magnitude, some by 30X and one by 57X !

All the code to date is pushed to
https://github.com/bavison/opensmalltalk-vm/tree/Ben
with the latest version of the test harnesses at
https://github.com/bavison/SqueakBitBltTest

Look for items changed in the last few days ie 25th april or later. I haven't had a chance to do more than glance as yet. I *suspect* Ben has manually edited the generated BitBltPlugin.c file, which will mean doing some diffing and back-porting into Slang. Maybe.

I, for one, welcome our new v8 blit overlords.

tim
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"#define QUESTION ((bb) || !(bb)) - Shakespeare."


Reply | Threaded
Open this post in threaded view
|

Re: ARMv8 BitBLT speedups provided by RPi/Ben Avison

Tobias Pape
In reply to this post by timrowledge
 
Blimey, what a nice surprise!
Thanks!
        -Tobias

> On 30. Apr 2021, at 06:38, tim Rowledge <[hidden email]> wrote:
>
>
> Our friends in Cambridge (Real Cambridge, not Backup Cambridge) have spent a nice chunk of money to bring the ARM32 bitblt speedups they provided in '14/5/6 into the ARMv8 world. Quite a few microbenchmarks covering the tests Ben did (and he wrote a testing framework that ran some 10s of thousands of tests) are improved by an order of magnitude, some by 30X and one by 57X !
>
> All the code to date is pushed to
>  https://github.com/bavison/opensmalltalk-vm/tree/Ben
> with the latest version of the test harnesses at
>  https://github.com/bavison/SqueakBitBltTest
>
> Look for items changed in the last few days ie 25th april or later. I haven't had a chance to do more than glance as yet. I *suspect* Ben has manually edited the generated BitBltPlugin.c file, which will mean doing some diffing and back-porting into Slang. Maybe.
>
> I, for one, welcome our new v8 blit overlords.
>
> tim
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> "#define QUESTION ((bb) || !(bb))  - Shakespeare."
>
>


Reply | Threaded
Open this post in threaded view
|

Re: ARMv8 BitBLT speedups provided by RPi/Ben Avison

timrowledge
In reply to this post by marcel.taeumel
 


> On 2021-04-29, at 11:16 PM, Marcel Taeumel <[hidden email]> wrote:
>
> :-O
>
> +1 !!! :-)
>
> I haven't looked into it. Would be nice if it remained compatible with upstream. There is no pull request yet.

Yeah, nice eh? A couple of months of Ben's time is a lot of money to gift us.

I'm not sure about this pull request stuff but I'll nudge Ben about. In the meantime, if anyone has spare time to actually build from his tree and  try it, that would be interesting. I won't have a chance to do that for at least a week, I think, and then my time starts to get very tight as explained at the board meeting.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SARTRE: (Statement has no purpose)


Reply | Threaded
Open this post in threaded view
|

Re: ARMv8 BitBLT speedups provided by RPi/Ben Avison

timrowledge
 


> On 2021-04-30, at 10:14 AM, tim Rowledge <[hidden email]> wrote:
>> On 2021-04-29, at 11:16 PM, Marcel Taeumel <[hidden email]> wrote:
>>
>> :-O
>>
>> +1 !!! :-)
>>
>> I haven't looked into it. Would be nice if it remained compatible with upstream. There is no pull request yet.
>
> Yeah, nice eh? A couple of months of Ben's time is a lot of money to gift us.
>
> I'm not sure about this pull request stuff but I'll nudge Ben about. In the meantime, if anyone has spare time to actually build from his tree and  try it, that would be interesting.


I made a few moments to do a simple compare of a recent generated-by-us BitBitPlugin.c and the Ben-version; three changes that will need a little tweaking of the Slang.

See in the Ben-code (per https://raw.githubusercontent.com/bavison/opensmalltalk-vm/Ben/src/plugins/BitBltPlugin/BitBltPlugin.c), lines -
1855
1866-73
5238 for possible return value change?
6395-6401

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: FSE: Fake Serious Error