Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Bruce Guenter
On Fri, Jun 26, 2015 at 08:38:56PM +0300, Roman Lebedev wrote: > On Fri, Jun 26, 2015 at 6:33 PM, Bruce Guenter wrote: > > Here's what I've found out: GCC does support function multiversioning > > (https://gcc.gnu.org/wiki/FunctionMultiVersioning) to provide the same > > function name for differen

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Roman Lebedev
On Fri, Jun 26, 2015 at 6:33 PM, Bruce Guenter wrote: > On Fri, Jun 26, 2015 at 09:58:06AM +0200, jeremy rosen wrote: > > On Fri, Jun 26, 2015 at 6:57 AM, Bruce Guenter > wrote: > > > > > In fact, it could potentially (long term) eliminate the need for > > > process_cl() as well, with compilers

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Bruce Guenter
On Fri, Jun 26, 2015 at 07:12:26PM +0300, Roman Lebedev wrote: > On Fri, Jun 26, 2015 at 6:46 PM, Bruce Guenter wrote: > > How is it broken? Who considers it broken? I had not heard this, though > > I don't hear much on that front. Ubuntu has it by default in the latest > > release and I am using

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Roman Lebedev
On Fri, Jun 26, 2015 at 6:46 PM, Bruce Guenter wrote: > On Fri, Jun 26, 2015 at 02:10:32PM +0300, Roman Lebedev wrote: > > Last time it was discussed, it was agreed that there is just no compilers > > that > > support it: > > *) only GCC 4.9, which is considered half-broken by many people and > >

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Bruce Guenter
On Fri, Jun 26, 2015 at 02:10:32PM +0300, Roman Lebedev wrote: > Last time it was discussed, it was agreed that there is just no compilers > that > support it: > *) only GCC 4.9, which is considered half-broken by many people and How is it broken? Who considers it broken? I had not heard this, tho

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Bruce Guenter
On Fri, Jun 26, 2015 at 09:58:06AM +0200, jeremy rosen wrote: > On Fri, Jun 26, 2015 at 6:57 AM, Bruce Guenter wrote: > > > In fact, it could potentially (long term) eliminate the need for > > process_cl() as well, with compilers gaining support for offloading work > > to accelerators. As I under

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread Roman Lebedev
On Fri, Jun 26, 2015 at 7:57 AM, Bruce Guenter wrote: > On Fri, Jun 26, 2015 at 02:50:45AM +0300, Roman Lebedev wrote: > > There is also a second way (not counting leaving it as it is), > > and i think there are valid arguments why it should be chosen: OpenMP > SIMD. > > I agree that would be the

Re: [darktable-devel] Darktable and AVX

2015-06-26 Thread jeremy rosen
On Fri, Jun 26, 2015 at 6:57 AM, Bruce Guenter wrote: > On Fri, Jun 26, 2015 at 02:50:45AM +0300, Roman Lebedev wrote: > > There is also a second way (not counting leaving it as it is), > > and i think there are valid arguments why it should be chosen: OpenMP > SIMD. > > I agree that would be the

Re: [darktable-devel] Darktable and AVX

2015-06-25 Thread Bruce Guenter
On Fri, Jun 26, 2015 at 02:50:45AM +0300, Roman Lebedev wrote: > There is also a second way (not counting leaving it as it is), > and i think there are valid arguments why it should be chosen: OpenMP SIMD. I agree that would be the ideal, but I have several issues below. I had looked at that and

Re: [darktable-devel] Darktable and AVX

2015-06-25 Thread Roman Lebedev
There is also a second way (not counting leaving it as it is), and i think there are valid arguments why it should be chosen: OpenMP SIMD. 1. more versions of process() - more code to keep synced Right now we already have process() with SSE[3] and process_cl() with opencl And even now, there is no

Re: [darktable-devel] Darktable and AVX

2015-06-25 Thread johannes hanika
hi! sounds exciting :) 1. maybe near the sse detection in src/common/darktable.c? 2. no preference from my side. i would probably put it into process() with a branch, maybe some modules can make use of the same code in between SIMDfied blocks. 3. it's done with dt_alloc_align, most places use 6