All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 0/7 v6] package/fftw: add a bunch of optimisations (branch yem/fftw)
@ 2015-03-16 13:54 Yann E. MORIN
  2015-03-16 13:53 ` [Buildroot] [PATCH 1/7 v6] fftw: add compile precision option Yann E. MORIN
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-03-16 13:54 UTC (permalink / raw)
  To: buildroot

Hello All!

This series aggregates misc optimisation patches for out fftw package,
based on work by Gwenhael and Guillaume.

Thanks to both for their previous work! :-)


Changes v5 -> v6:
  - architecture optimisations are not available for all precisions
    (Thomas, Gwenhael)

Changes v4 -> v5:
  - use --disable-XXX in first patch
  - add architecture optimisations for x86 and ARM
  - add other optimisations (threads, openMP, fast maths)


Regards,
Yann E. MORIN.


The following changes since commit c511ca937d4627df7d601a999945faa20fe4cc8d:

  network-manager: add hash file (2015-03-16 14:19:30 +0100)

are available in the git repository at:

  git://git.busybox.net/~ymorin/git/buildroot yem/fftw

for you to fetch changes up to 0842316b8be377f09daf4c2f6a8d05fd303237d8:

  package/fftw: add option for fast maths (2015-03-16 14:37:43 +0100)

----------------------------------------------------------------
Gwenhael Goavec-Merou (1):
      fftw: add compile precision option

Yann E. MORIN (6):
      package/fftw: add x86 optimisations
      package/fftw: add ARM optimisations
      package/fftw: disable fortran
      package/fftw: enable threads when the tooclhain has them
      package/fftw: enable OpenMP if the compiler has that
      package/fftw: add option for fast maths

 package/fftw/Config.in | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 package/fftw/fftw.mk   | 21 +++++++++++++++++
 2 files changed, 84 insertions(+)

-- 
.-----------------.--------------------.------------------.--------------------.
|  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 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 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 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 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 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

* [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 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 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 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

end of thread, other threads:[~2015-03-16 16:16 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [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
2015-03-16 14:51       ` Thomas Petazzoni
2015-03-16 13:54 ` [Buildroot] [PATCH 4/7 v6] package/fftw: disable fortran 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
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 16:16   ` gwenhael.goavec
2015-03-16 13:54 ` [Buildroot] [PATCH 7/7 v6] package/fftw: add option for fast maths Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.