lua-users home
lua-l archive

Re: LuaJIT2 performance for number crunching

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Thu, Feb 17, 2011 at 11:48 AM, T T <t34www@googlemail.com> wrote:
>  vec3 = vec1 + vec2
>
> to add together two arrays and the good elves take care of the rest,
> but in Lua we have to write loops.
Well, it's traditionally done with objects, and this creates a great
deal of garbage (I recall Leo talking about this very thing.) The
elves turn out to be quite expensive.
IHMO, this is not the job of a standards-approaching implementation of
Lua, but a dialect that gets translated into Lua.
(A sophisticated template language like C++ can actually unroll this,
like the insanely clever work of Todd Verhuizen.)
What is the optimal form of the expression? Something like this (which
isn't easy on any eyes!)
vec3_1,vec3_2,vec3_3 = vec1_1 _ vect2_1, vec1_2 _ vect2_2, vec1_3 _ vect2_3
Now these vec objects become very interesting, like a kind of
statically-defined tuple. Wherever they appear, they need to be
expanded in this fashion. To be Lua values, they need to be packed
into a list. Such a translator needs to track the tuple-ness of a
variable. I haven't worked out the detailed semantics but it could get
ugly.
An entertaining project for anybody with a bored graduate student is
to explore some ideas behind this kind of Template Lua, which converts
TL into regular Lua for fast execution.
steve d.

AltStyle によって変換されたページ (->オリジナル) /