For those of you who missed this on IRC: henriksp: estebanlm: Care to run a small bench Cog vs Spur for me? [3:32pm] henriksp: int := ZnUTF8Encoder new. [3:32pm] henriksp: [int decodeBytes:#[67 97 115 104 44 32 108 105 107 101 32 226 130 172 44 32 105 115 32 107 105 110 103 0]] bench. [3:32pm] henriksp: had a 16x speedup with assembly implementation vs Cog, if it's 8x vs Spur, that's just really impressive [3:44pm] Craig left the chat room. (Quit: Leaving.) [3:53pm] Craig joined the chat room. [4:08pm] VitamineD joined the chat room. [4:20pm] estebanlm: checking [4:21pm] estebanlm: Cog: 167,000 per second. [4:22pm] estebanlm: Cog[Spur]: 289,000 per second. [4:23pm] estebanlm: henriksp: ping [4:33pm] tinchodias left the chat room. (Ping timeout: 245 seconds) [4:33pm] tinchodias joined the chat room. [4:34pm] henriksp: 70% more work done, nice! [5:09pm] Yay! :) |
On Fri, Oct 24, 2014 at 7:34 AM, Esteban Lorenzano <[hidden email]> wrote:
+1. Spur changes the object representation, so it has a new heap layout, a new layout for objects, and a new garbage collector. Because the object format is simpler it allows the Cog JIT to generate machine code versions of more operations, in particular basicNew, basicNew: and closure and context creation. This is the main reason for the speedups in Cog+Spur. As far as the Stack VM goes if you see speedups for Stack+Spur vs Stack+V3 that's all due to the Spur object representation & GC, because there's no JIT. Now at the moment the Cog JIT only has an x86 back-end in production. Tim Rowledge is working on finishing the ARM back end started by Lars Wassermann in the GSoC a few years ago. So soonish we should be able to have Cog+V3 or Cog+Spur on e.g. Android. As part of 64-bit Spur I will be doing a back end for x86-64. And Doug McPherson is also in the mix, having written the ARM version of the new FFI plugin, and is going to be building Stack ARM VMs and soon enough Cog ARM VMs.
best, Eliot
|
On 24-10-2014, at 10:07 AM, Eliot Miranda <[hidden email]> wrote: > Tim Rowledge is working on finishing the ARM back end started by Lars Wassermann in the GSoC a few years ago. So soonish we should be able to have Cog+V3 or Cog+Spur on e.g. Android. Coming someday Real Soon Now. I have to get Yet Another Release out for Pi Scratch users, then back to Cogging. > > As part of 64-bit Spur I will be doing a back end for x86-64. And of course there is the ARMv8 barrelling up in the rear view mirror too. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Useful Latin Phrases:- Spero nos familiares mansuros. = I hope we'll still be friends. |
In reply to this post by Eliot Miranda-2
On Oct 26, 2014, at 8:58 AM, stepharo <[hidden email]> wrote: > >> >> Yes, I'm very excited. It's so great to have strong collaborators like Clément, Ronie, Doug and Tim. But there's lots of room for more to join us. For a really cool project how about grabbing Bert Freudenberg's VMMakerJS Squeak-vm-on-JavaScript, extract the event handling and rendering part and connect it to the Cog VM via sockets to give us a really fast web plugin? > > I thought that the event handling was what JB is doing with the idle process on android. These are two different, but closely related things. The event-driven VM and idle process work gives us better event handling (no event queue, important for better integration with GUIs) and a cheaper VM at idle (the CM blocks awaiting an event instead of spinning calling a shirt delay). To embed the system in a web browser one needs both to render to the browser window and to receive mouse and keyboard events from the window. So the "plugin" must be connected to the VM's event subsystem e.g. by a socket. Just as the VM's graphics subsystem must output to the browser window. There are lots of ways to slice this and it will likely be different for BitBlt and Athens. Eliot (phone) > > Stef >> >> -- >> best, >> Eliot > > |
On Sun, 26 Oct 2014, Eliot Miranda wrote: > > > > On Oct 26, 2014, at 8:58 AM, stepharo <[hidden email]> wrote: > >> >>> >>> Yes, I'm very excited. It's so great to have strong collaborators like Clément, Ronie, Doug and Tim. But there's lots of room for more to join us. For a really cool project how about grabbing Bert Freudenberg's VMMakerJS Squeak-vm-on-JavaScript, extract the event handling and rendering part and connect it to the Cog VM via sockets to give us a really fast web plugin? >> >> I thought that the event handling was what JB is doing with the idle process on android. > > These are two different, but closely related things. The event-driven VM and idle process work gives us better event handling (no event queue, important for better integration with GUIs) and a cheaper VM at idle (the CM blocks awaiting an event instead of spinning calling a shirt delay). event-driven VM already exists. Proposal: http://lists.squeakfoundation.org/pipermail/vm-dev/2009-November/003385.html Announcement: http://lists.squeakfoundation.org/pipermail/vm-dev/2010-January/003684.html Repo: https://code.google.com/p/squeak-android-vm/ StackVM variant with other improvments: https://code.google.com/p/squeakvm-tablet/ Levente > > To embed the system in a web browser one needs both to render to the browser window and to receive mouse and keyboard events from the window. > > So the "plugin" must be connected to the VM's event subsystem e.g. by a socket. Just as the VM's graphics subsystem must output to the browser window. There are lots of ways to slice this and it will likely be different for BitBlt and Athens. > > Eliot (phone) > >> >> Stef >>> >>> -- >>> best, >>> Eliot >> >> > |
On Sun, Oct 26, 2014 at 11:59 AM, Levente Uzonyi <[hidden email]> wrote:
It still needs integrating. AFAIA JB's version for Android is the most up-to-date version.
best, Eliot
|
Free forum by Nabble | Edit this page |