[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Ravi performance update
- From: Dibyendu Majumdar <mobile@...>
- Date: Wed, 29 Jul 2015 00:38:50 +0100
On 15 July 2015 at 22:11, Dibyendu Majumdar <mobile@majumdar.org.uk> wrote:
> The updated benchmarks are reproduced below.
>
> +---------------+---------+------------+------------+
> | Program | Lua5.3 | Ravi(LLVM) | Luajit 2.1 |
> +===============+=========+============+============+
> |fornum_test1 | 9.187 | 0.31 | 0.309 |
> +---------------+---------+------------+------------+
> |fornum_test2 | 9.57 | 0.917 | 0.906 |
> +---------------+---------+------------+------------+
> |fornum_test3 | 53.932 | 4.598 | 7.778 |
> +---------------+---------+------------+------------+
> |mandel(4000) | 21.247 | 1.582 | 1.633 |
> +---------------+---------+------------+------------+
> |fannkuchen(11) | 63.446 | 4.55 | 4.751 |
> +---------------+---------+------------+------------+
> |matmul(1000) | 34.604 | 2.942 | 0.968 |
> +---------------+---------+------------+------------+
>
Hi,
I have done some investigation into the performance of the matrix
multiplication (matmul) benchmark. It turns out that if I omit the
range checks for array read operations then performance is on par with
LuaJIT when using LLVM 3.7. So I have added an option to allow user to
disable array range checks (when reading only) - this must be set when
compiling a function. The idea is that once code has been debugged,
array range checks are superfluous at least for the read operations.
I haven't yet compared the emitted machine code to verify that LuaJIT
is optimising away the range checks.
Regards
Dibyendu