Re: Projects I may be willing to sponsor - FFI Array Sum versus native table results

  • From: Joe Ellsworth <joexdobs@xxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Wed, 10 Dec 2014 12:20:10 -0800

Hi Stefano,

I took the liberty of modifying your code to add enough work to make timing meaningful. http://pastebin.com/24tkRwGA If I am correct then what you just showed is a 107X speed improvement for the same algorithm. That is pretty impressive.

Ran on my laptop:

   elap allocate ffi 0sec
   elap fill ffi array 0sec
   elap sum the ffi arrray 0.484sec
   elap fill native table  0.015sec
   elap sum the lua arrray 51.887sec




On 12/10/2014 11:50 AM, Stefano wrote:


On 10 Dec 2014 18:39, "Szabó Antal" <szabo.antal.92@xxxxxxxxx <mailto:szabo.antal.92@xxxxxxxxx>> wrote:
>
> 2014-12-10 19:15 GMT+01:00 Joseph Ellsworth <joexdobs@xxxxxxxxx <mailto:joexdobs@xxxxxxxxx>>:
>>
>> The sample / example would allocate the array, Fill it with a set of doubles read from a file, Run the sum and return both the sum and average value.
>
>
> Here is a sample code for what I suppose you want: http://pastebin.com/cj7jShfj
>
> The summation loop looks like this in x64 assembly (use -jdump with luajit to get it):
>
> ->LOOP:
> 7ffc8350ff80  addsd xmm7, [rax+rdi*8+0x8]
> 7ffc8350ff86  add edi, +0x01
> 7ffc8350ff89  cmp edi, 0x270f
> 7ffc8350ff8f  jle 0x7ffc8350ff80        ->LOOP
>
> As far as I can tell, this is the shortest and fastest you can get without using vector instructions, which LuaJIT doesn't currently support.

For something more end-user-friendly (for this project at least) than bare FFI the author might be interested in my the algebra module of an open source project I'm working on:

http://scilua.org/sci_alg.html

Stefano

>
>
> Antal Szabó


Other related posts: