This are great news! :) One question: Why is "tuple vectorization" needed for fast 3D vector calculations?
On Wednesday, September 24, 2014 12:05:47 AM UTC+2, Arch Robison wrote: > > Update on 64-bit support for vectorizing loops: The support just went into > the Github sources. See https://github.com/JuliaLang/julia/pull/8452 . > Though for 3D vectors, those are in need of "tuple vectorization". See > https://github.com/JuliaLang/julia/pull/6271 for the prototype. > Unfortunately the prototyped slowed down compilation too much to be > enabled by default. But it's possible we might evolve a way to turn it on > for specially marked regions of code, or speed up how fast it can reject > uninteresting code. > > On Wednesday, September 17, 2014 10:10:56 AM UTC-5, Uwe Fechner wrote: >> >> Any idea when the vectorization of 64 bit double values will be >> supported? >> >> (I work a lot with 3D double vectors, they could be calculated with one >> command >> in the Haswell CPU's. ) >> >> On Wednesday, September 17, 2014 4:48:26 PM UTC+2, Arch Robison wrote: >>> >>> There is support in LLVM 3.5 for remarks from the vectorizer, such as >>> "vectorization is not beneficial and is not explicitly forced". I didn't >>> see any remarks that explained the "why" in more detail, though that seems >>> possible to improve since the vectorizer has debugging remarks that go into >>> the "why" question (e.g. "LV: Not vectorizing: Cannot prove legality.") >>> The hard part is coming up with messages that are understandable to >>> non-experts and pertinent. Having too many messages can bury the useful >>> ones. >>> >>> I opened issue #8392 <https://github.com/JuliaLang/julia/issues/8392> >>> for the subject. >>> >>> On Wed, Sep 17, 2014 at 9:28 AM, Arch Robison <arch.d....@gmail.com> >>> wrote: >>> >>>> Thanks. Now fixed. >>>> >>>> On Wed, Sep 17, 2014 at 4:14 AM, Gunnar Farnebäck < >>>> gun...@lysator.liu.se> wrote: >>>> >>>>> In the section "The Loop Body Should Be Straight-Line Code", the first >>>>> and second code example look identical with ifelse constructions. I >>>>> assume >>>>> the first one should use ? instead. Also the third code example has a >>>>> stray >>>>> x[i]<a argument to the max function. >>>>> >>>> >>>