* [Buildroot] [PATCH 1/7 v6] fftw: add compile precision option
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
@ 2015-03-16 13:53 ` Yann E. MORIN
2015-03-16 13:54 ` [Buildroot] [PATCH 2/7 v6] package/fftw: add x86 optimisations Yann E. MORIN
` (5 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:53 UTC (permalink / raw)
To: buildroot
From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
fftw has options to select compile precision between single, long-double
and quad. These options are exclusives. This patch adds choice to select
precision option.
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[yann.morin.1998 at free.fr: use --disable-XXX when not enabled]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
---
package/fftw/Config.in | 38 ++++++++++++++++++++++++++++++++++++++
package/fftw/fftw.mk | 4 ++++
2 files changed, 42 insertions(+)
diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index 36f849f..7fa2c4c 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -9,3 +9,41 @@ config BR2_PACKAGE_FFTW
double precision.
http://www.fftw.org
+
+if BR2_PACKAGE_FFTW
+
+choice
+ prompt "fftw precision"
+ default BR2_PACKAGE_FFTW_PRECISION_NONE
+ help
+ Selects fftw precision
+
+config BR2_PACKAGE_FFTW_PRECISION_NONE
+ bool "none"
+ help
+ no compile precision selected
+
+config BR2_PACKAGE_FFTW_PRECISION_SINGLE
+ bool "single precision"
+ help
+ compile fftw in single precision
+
+config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
+ bool "long double precision"
+ # long-double precision require long-double trigonometric routines
+ depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
+ (BR2_arm || BR2_mips || BR2_mipsel))
+
+ help
+ compile fftw in long-double precision
+
+config BR2_PACKAGE_FFTW_PRECISION_QUAD
+ bool "quad precision"
+ # quad-precision needs to have a gcc with libquadmath
+ depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR
+ help
+ compile fftw in quadruple precision if available
+
+endchoice
+
+endif
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 3b302df..78d36e9 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -10,4 +10,8 @@ FFTW_INSTALL_STAGING = YES
FFTW_LICENSE = GPLv2+
FFTW_LICENSE_FILES = COPYING
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
+
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 2/7 v6] package/fftw: add x86 optimisations
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
2015-03-16 13:53 ` [Buildroot] [PATCH 1/7 v6] fftw: add compile precision option Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
2015-03-16 13:54 ` [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations Yann E. MORIN
` (4 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
---
Changes v5 -> v6:
- SSE/SSE2 can't be enabled for all precisions (Gwenhael)
---
package/fftw/Config.in | 10 +++++++++-
package/fftw/fftw.mk | 4 ++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index 7fa2c4c..30c395f 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -12,6 +12,12 @@ config BR2_PACKAGE_FFTW
if BR2_PACKAGE_FFTW
+config BR2_PACKAGE_FFTW_USE_SSE
+ bool
+
+config BR2_PACKAGE_FFTW_USE_SSE2
+ bool
+
choice
prompt "fftw precision"
default BR2_PACKAGE_FFTW_PRECISION_NONE
@@ -25,6 +31,8 @@ config BR2_PACKAGE_FFTW_PRECISION_NONE
config BR2_PACKAGE_FFTW_PRECISION_SINGLE
bool "single precision"
+ select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
+ select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
help
compile fftw in single precision
@@ -33,7 +41,7 @@ config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
# long-double precision require long-double trigonometric routines
depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
(BR2_arm || BR2_mips || BR2_mipsel))
-
+ select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
help
compile fftw in long-double precision
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 78d36e9..18239e8 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -14,4 +14,8 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
+# x86 optimisations
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
+
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
2015-03-16 13:53 ` [Buildroot] [PATCH 1/7 v6] fftw: add compile precision option Yann E. MORIN
2015-03-16 13:54 ` [Buildroot] [PATCH 2/7 v6] package/fftw: add x86 optimisations Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
2015-03-16 14:30 ` gwenhael.goavec
2015-03-16 13:54 ` [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran Yann E. MORIN
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[based on a patch by Guillaume]
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
Changes v5 -> v6:
- NEON can't be used by all precisions (Gwenhael)
---
package/fftw/Config.in | 4 ++++
package/fftw/fftw.mk | 3 +++
2 files changed, 7 insertions(+)
diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index 30c395f..a0f353c 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -18,6 +18,9 @@ config BR2_PACKAGE_FFTW_USE_SSE
config BR2_PACKAGE_FFTW_USE_SSE2
bool
+config BR2_PACKAGE_FFTW_USE_NEON
+ bool
+
choice
prompt "fftw precision"
default BR2_PACKAGE_FFTW_PRECISION_NONE
@@ -33,6 +36,7 @@ config BR2_PACKAGE_FFTW_PRECISION_SINGLE
bool "single precision"
select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
+ select BR2_PACKAGE_FFTW_USE_NEON if BR2_ARM_FPU_NEON
help
compile fftw in single precision
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 18239e8..be99210 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -18,4 +18,7 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-qu
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
+# ARM optimisations
+FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
+
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations
2015-03-16 13:54 ` [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations Yann E. MORIN
@ 2015-03-16 14:30 ` gwenhael.goavec
2015-03-16 14:32 ` Yann E. MORIN
0 siblings, 1 reply; 14+ messages in thread
From: gwenhael.goavec @ 2015-03-16 14:30 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN
On Mon, 16 Mar 2015 14:54:01 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
[SNIP]
> choice
> prompt "fftw precision"
> default BR2_PACKAGE_FFTW_PRECISION_NONE
> @@ -33,6 +36,7 @@ config BR2_PACKAGE_FFTW_PRECISION_SINGLE
> bool "single precision"
> select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
> select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
> + select BR2_PACKAGE_FFTW_USE_NEON if BR2_ARM_FPU_NEON
> help
[SNIP]
s/BR2_ARM_FPU_NEON/BR2_ARM_CPU_HAS_NEON/
Regards
Gwen
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations
2015-03-16 14:30 ` gwenhael.goavec
@ 2015-03-16 14:32 ` Yann E. MORIN
2015-03-16 14:51 ` Thomas Petazzoni
0 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 14:32 UTC (permalink / raw)
To: buildroot
Gwenhael, All,
On 2015-03-16 15:30 +0100, gwenhael.goavec spake thusly:
> Dear Yann E. MORIN
> On Mon, 16 Mar 2015 14:54:01 +0100
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> [SNIP]
> > choice
> > prompt "fftw precision"
> > default BR2_PACKAGE_FFTW_PRECISION_NONE
> > @@ -33,6 +36,7 @@ config BR2_PACKAGE_FFTW_PRECISION_SINGLE
> > bool "single precision"
> > select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
> > select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
> > + select BR2_PACKAGE_FFTW_USE_NEON if BR2_ARM_FPU_NEON
> > help
> [SNIP]
> s/BR2_ARM_FPU_NEON/BR2_ARM_CPU_HAS_NEON/
No, because even if the CPU has NEON, it is not enough for NEOn to be
enabled.
That's what I initially tried, but it did not work, as fftw compiles
parts of its code without specifying -mfpu=neon, and thus it falls to
the value specified by Buildroot, and the compilation breaks.
I should probably have said so in the commit log, indeed...
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations
2015-03-16 14:32 ` Yann E. MORIN
@ 2015-03-16 14:51 ` Thomas Petazzoni
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2015-03-16 14:51 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN,
On Mon, 16 Mar 2015 15:32:04 +0100, Yann E. MORIN wrote:
> That's what I initially tried, but it did not work, as fftw compiles
> parts of its code without specifying -mfpu=neon, and thus it falls to
> the value specified by Buildroot, and the compilation breaks.
In this case, pass -mfpu=neon explicitly, like we do in mplayer and
vo-aacenc. Using NEON as the general purpose FPU is quite unlikely,
since using NEON for FPU is not IEEE 754. So most likely people will
use VFPv3/4 as the FPU, but may be interested in using NEON for
specific things.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
` (2 preceding siblings ...)
2015-03-16 13:54 ` [Buildroot] [PATCH 3/7 v6] package/fftw: add ARM optimisations Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
2015-03-16 15:46 ` gwenhael.goavec
2015-03-16 13:54 ` [Buildroot] [PATCH 5/7 v6] package/fftw: enable threads when the tooclhain has them Yann E. MORIN
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
We do not have any fortran package and we do not build a fortran
compiler.
Still, an external toolchain may have a fortran compiler and that is
totally useless to us, since we anyway have no fortran package...
So, entirely disable fortran support; that will at least slightly speed
up the build in case an external toolchain has a fortran compiler.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[based on a patch by Guillaume]
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
package/fftw/fftw.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index be99210..333e13b 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -10,6 +10,8 @@ FFTW_INSTALL_STAGING = YES
FFTW_LICENSE = GPLv2+
FFTW_LICENSE_FILES = COPYING
+FFTW_CONF_OPTS = --disable-fortran
+
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran
2015-03-16 13:54 ` [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran Yann E. MORIN
@ 2015-03-16 15:46 ` gwenhael.goavec
0 siblings, 0 replies; 14+ messages in thread
From: gwenhael.goavec @ 2015-03-16 15:46 UTC (permalink / raw)
To: buildroot
On Mon, 16 Mar 2015 14:54:02 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> We do not have any fortran package and we do not build a fortran
> compiler.
>
> Still, an external toolchain may have a fortran compiler and that is
> totally useless to us, since we anyway have no fortran package...
>
> So, entirely disable fortran support; that will at least slightly speed
> up the build in case an external toolchain has a fortran compiler.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> [based on a patch by Guillaume]
> Cc: guillaume william brs <guillaume.bressaix@gmail.com>
> Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Tested-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Reviewed-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> ---
> package/fftw/fftw.mk | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index be99210..333e13b 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -10,6 +10,8 @@ FFTW_INSTALL_STAGING = YES
> FFTW_LICENSE = GPLv2+
> FFTW_LICENSE_FILES = COPYING
>
> +FFTW_CONF_OPTS = --disable-fortran
> +
> FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single
> FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
> FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 5/7 v6] package/fftw: enable threads when the tooclhain has them
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
` (3 preceding siblings ...)
2015-03-16 13:54 ` [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
2015-03-16 15:48 ` gwenhael.goavec
2015-03-16 13:54 ` [Buildroot] [PATCH 6/7 v6] package/fftw: enable OpenMP if the compiler has that Yann E. MORIN
2015-03-16 13:54 ` [Buildroot] [PATCH 7/7 v6] package/fftw: add option for fast maths Yann E. MORIN
6 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[based on a patch by Guillaume]
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
package/fftw/fftw.mk | 3 +++
1 file changed, 3 insertions(+)
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 333e13b..a82fca3 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -23,4 +23,7 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
# ARM optimisations
FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
+# Generic optimisations
+FFTW_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable,--disable)-threads
+
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 5/7 v6] package/fftw: enable threads when the tooclhain has them
2015-03-16 13:54 ` [Buildroot] [PATCH 5/7 v6] package/fftw: enable threads when the tooclhain has them Yann E. MORIN
@ 2015-03-16 15:48 ` gwenhael.goavec
0 siblings, 0 replies; 14+ messages in thread
From: gwenhael.goavec @ 2015-03-16 15:48 UTC (permalink / raw)
To: buildroot
On Mon, 16 Mar 2015 14:54:03 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> [based on a patch by Guillaume]
> Cc: guillaume william brs <guillaume.bressaix@gmail.com>
> Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Tested-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Reviewed-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> ---
> package/fftw/fftw.mk | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index 333e13b..a82fca3 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -23,4 +23,7 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
> # ARM optimisations
> FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
>
> +# Generic optimisations
> +FFTW_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable,--disable)-threads
> +
> $(eval $(autotools-package))
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 6/7 v6] package/fftw: enable OpenMP if the compiler has that
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
` (4 preceding siblings ...)
2015-03-16 13:54 ` [Buildroot] [PATCH 5/7 v6] package/fftw: enable threads when the tooclhain has them Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
2015-03-16 16:16 ` gwenhael.goavec
2015-03-16 13:54 ` [Buildroot] [PATCH 7/7 v6] package/fftw: add option for fast maths Yann E. MORIN
6 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
Unfortunately, this is limited to internal toolchains; we currently have
no way to know if an external toolchain has support for OpenMP.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
package/fftw/fftw.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index a82fca3..c6fe6f0 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -25,5 +25,6 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
# Generic optimisations
FFTW_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable,--disable)-threads
+FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable-openmp,--disable-openmp)
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [Buildroot] [PATCH 6/7 v6] package/fftw: enable OpenMP if the compiler has that
2015-03-16 13:54 ` [Buildroot] [PATCH 6/7 v6] package/fftw: enable OpenMP if the compiler has that Yann E. MORIN
@ 2015-03-16 16:16 ` gwenhael.goavec
0 siblings, 0 replies; 14+ messages in thread
From: gwenhael.goavec @ 2015-03-16 16:16 UTC (permalink / raw)
To: buildroot
On Mon, 16 Mar 2015 14:54:04 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> Unfortunately, this is limited to internal toolchains; we currently have
> no way to know if an external toolchain has support for OpenMP.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: guillaume william brs <guillaume.bressaix@gmail.com>
> Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Tested-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Reviewed-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> ---
> package/fftw/fftw.mk | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index a82fca3..c6fe6f0 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -25,5 +25,6 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
>
> # Generic optimisations
> FFTW_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable,--disable)-threads
> +FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable-openmp,--disable-openmp)
>
> $(eval $(autotools-package))
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 7/7 v6] package/fftw: add option for fast maths
2015-03-16 13:54 [Buildroot] [PATCH 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw) Yann E. MORIN
` (5 preceding siblings ...)
2015-03-16 13:54 ` [Buildroot] [PATCH 6/7 v6] package/fftw: enable OpenMP if the compiler has that Yann E. MORIN
@ 2015-03-16 13:54 ` Yann E. MORIN
6 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[based on a patch by Guillaume]
Cc: guillaume william brs <guillaume.bressaix@gmail.com>
Cc: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
package/fftw/Config.in | 13 +++++++++++++
package/fftw/fftw.mk | 4 ++++
2 files changed, 17 insertions(+)
diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index a0f353c..f088b4c 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -58,4 +58,17 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
endchoice
+config BR2_PACKAGE_FFTW_FAST
+ bool "optimise for speed over accuracy"
+ help
+ Optimise for fast math functions, at the expense of accuracy.
+
+ Say 'y' if you need speed and can live with inaccuracies in
+ the results. Say 'n' (the default) if accuracy is of utmost
+ importance.
+
+ This basically uses gcc's -Ofast optimisation level, which in
+ turn is basically using gcc's -ffast-math. See the gcc manual
+ for what this means.
+
endif
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index c6fe6f0..6ba4806 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -27,4 +27,8 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
FFTW_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable,--disable)-threads
FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable-openmp,--disable-openmp)
+ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
+FFTW_CONF_OPTS += CFLAGS="$(TARGET_CFLAGS) -Ofast"
+endif
+
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 14+ messages in thread