blob: 0144e93a3faf98b89346b3c64e2f3bcb7f7aea40 [file] [log] [blame]
config BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
string
default "P2" if BR2_x86_pentium2
default "KATMAI" if BR2_x86_pentium3
default "NORTHWOOD" if BR2_x86_pentium4
default "PRESCOTT" if BR2_x86_prescott || BR2_x86_nocona
default "BANIAS" if BR2_x86_pentium_m
default "CORE2" if BR2_x86_core2
default "NEHALEM" if BR2_x86_corei7 || BR2_x86_silvermont || BR2_x86_westmere
default "SANDYBRIDGE" if BR2_x86_corei7_avx
default "HASWELL" if BR2_x86_core_avx2
default "ATOM" if BR2_x86_atom
default "ATHLON" if BR2_x86_athlon || BR2_x86_athlon_4
default "OPTERON" if BR2_x86_opteron
default "OPTERON_SSE3" if BR2_x86_opteron_sse3
default "BARCELONA" if BR2_x86_barcelona
default "BOBCAT" if BR2_x86_jaguar
default "STEAMROLLER" if BR2_x86_steamroller
default "VIAC3" if BR2_x86_c3 || BR2_x86_c32
default "POWER4" if BR2_powerpc_power4
default "POWER5" if BR2_powerpc_power5
default "POWER6" if BR2_powerpc_power6
default "POWER7" if BR2_powerpc_power7
default "POWER8" if BR2_powerpc_power8
default "PPCG4" if BR2_powerpc_7400 || BR2_powerpc_7450
default "PPC970" if BR2_powerpc_970
default "PPC440" if BR2_powerpc_440
default "PPC440FP2" if BR2_powerpc_440fp
# P5600 is built with MSA support which is only available in Codescape toolchains
default "P5600" if BR2_mips_p5600 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
default "SICORTEX" if BR2_MIPS_CPU_MIPS64
# I6400 is built with MSA support which is only available in Codescape toolchains
default "I6400" if BR2_mips_i6400 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
# OpenBLAS assumes SPARC=Sparc v9
default "SPARC" if BR2_sparc_v9
# Cortex-A15 always have a VFPv4
default "CORTEXA15" if (BR2_cortex_a15 && BR2_ARM_EABIHF)
# Cortex-A9 have an optional VFPv3, so we need to make sure it
# is available
default "CORTEXA9" if (BR2_cortex_a9 && BR2_ARM_EABIHF && \
BR2_ARM_CPU_HAS_VFPV3)
default "ARMV5" if BR2_ARM_CPU_ARMV5
# On ARMv6, OpenBLAS assumes that a VFP is available, and
# EABIhf is used
default "ARMV6" if (BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && \
BR2_ARM_CPU_HAS_VFPV2)
# On ARMv7, OpenBLAS assumes that a full VFPv3+ is available
# (and not the more limited D16 variant), and that EABIhf is
# used.
default "ARMV7" if (BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && \
BR2_ARM_CPU_HAS_VFPV3)
default "ARMV8" if BR2_aarch64 || BR2_aarch64_be
help
OpenBLAS target CPU. See TargetList.txt in the source tree for
the possible target strings. A possible value is set
automatically based on your Target Architecture Variant.
config BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
bool
default y if BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET != ""
config BR2_PACKAGE_OPENBLAS
bool "openblas"
depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
help
An optimized BLAS library based on GotoBLAS2 1.13 BSD version.
https://www.openblas.net/
if BR2_PACKAGE_OPENBLAS
config BR2_PACKAGE_OPENBLAS_TARGET
string "OpenBLAS target CPU"
default BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
config BR2_PACKAGE_OPENBLAS_USE_THREAD
bool "use multithreading"
default y
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_STATIC_LIBS
help
Tell OpenBLAS to use multithreading, by passing USE_THREAD=1.
config BR2_PACKAGE_OPENBLAS_USE_LOCKING
bool "use locking"
default y
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_PACKAGE_OPENBLAS_USE_THREAD
help
Tell OpenBLAS to use locking, by passing USE_LOCKING=1.
Locking is implicitly enabled when USE_THREAD=1.
However, if USE_THREAD=0 (i.e. OpenBLAS itself will run in
single-threaded mode) but an application makes OpenBLAS
function calls from multiple threads, then locking is
mandatory for correct operation.
endif