From: Yu-Chien Peter Lin <peterlin@andestech.com>
To: Julien Olivain <ju.o@free.fr>
Cc: buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH] package/openblas: Add support for RISC-V architecture
Date: Sun, 24 Sep 2023 16:43:20 +0800 [thread overview]
Message-ID: <ZQ_2qDPzM5Rtdc18@APC323> (raw)
In-Reply-To: <27236247f795d4836c8c041835c6899e@free.fr>
Hi Julien,
On Sat, Sep 23, 2023 at 09:27:34PM +0200, Julien Olivain wrote:
> Hi Yu,
>
> Thanks for the patch!
>
> On 23/09/2023 17:35, Yu Chien Peter Lin wrote:
> > The current version of OpenBLAS (v0.3.24) supports the
> > RV64 architecture. With this update, we can install
> > the library and packages such as GNU Octave on RISC-V
> > platforms.
>
> I think it would be better to record in the commit log when the RISC-V
> support was added. For example:
>
> OpenBLAS RISC-V 64bit support was added in [1] and was renamed to
> "RISCV64_GENERIC" in [2]. Those commits were first included in
> OpenBLAS release v0.3.13. This support can now be enabled. With this
> commit, we can install the library and packages such as GNU Octave on
> RISC-V platforms.
>
> [1] https://github.com/OpenMathLib/OpenBLAS/commit/c167a3d6f41ed2f5680c2a72846b4c9b5d416543
> [2] https://github.com/OpenMathLib/OpenBLAS/commit/265ab484c89d10dfff2d5df678221918d7a880e3
>
> If you can, please send a v2 updated patch.
Sure, no problem. Thank you for locating the commits for me.
Best regards,
Peter Lin
> > This patch also adjusts the alignment for adding
> > "RISCV64_GENERIC" in Config.in.
>
> I also successfully tested this patch on branch master at
> commit 20c023a, by adding in qemu_riscv64_virt_defconfig a Bootlin
> toolchain and OpenBLAS with its tests. So you can also add:
>
> Reviewed-by: Julien Olivain <ju.o@free.fr>
> Tested-by: Julien Olivain <ju.o@free.fr>
>
> > Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
> > ---
> > package/openblas/Config.in | 73 +++++++++++++++++++-------------------
> > 1 file changed, 37 insertions(+), 36 deletions(-)
> >
> > diff --git a/package/openblas/Config.in b/package/openblas/Config.in
> > index 58976e657a..26a76d29fb 100644
> > --- a/package/openblas/Config.in
> > +++ b/package/openblas/Config.in
> > @@ -1,55 +1,56 @@
> > 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
> > + 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
> > + 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
> > + default "I6400" if BR2_mips_i6400 &&
> > BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
> > # OpenBLAS assumes SPARC=Sparc v9
> > - default "SPARC" if BR2_sparc_v9
> > + default "SPARC" if BR2_sparc_v9
> > # Cortex-A15 always have a VFPv4
> > - default "CORTEXA15" if (BR2_cortex_a15 && BR2_ARM_EABIHF)
> > + 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 && \
> > + default "CORTEXA9" if (BR2_cortex_a9 && BR2_ARM_EABIHF && \
> > BR2_ARM_CPU_HAS_VFPV3)
> > - default "ARMV5" if BR2_ARM_CPU_ARMV5
> > + 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 && \
> > + 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 && \
> > + default "ARMV7" if (BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF &&
> > \
> > BR2_ARM_CPU_HAS_VFPV3)
> > - default "ARMV8" if BR2_aarch64 || BR2_aarch64_be
> > + default "ARMV8" if BR2_aarch64 || BR2_aarch64_be
> > + default "RISCV64_GENERIC" if BR2_RISCV_64
> > help
> > OpenBLAS target CPU. See TargetList.txt in the source tree for
> > the possible target strings. A possible value is set
>
> Best regards,
>
> Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2023-09-24 8:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-23 15:35 [Buildroot] [PATCH] package/openblas: Add support for RISC-V architecture Yu Chien Peter Lin
2023-09-23 19:27 ` Julien Olivain
2023-09-24 8:43 ` Yu-Chien Peter Lin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZQ_2qDPzM5Rtdc18@APC323 \
--to=peterlin@andestech.com \
--cc=buildroot@buildroot.org \
--cc=ju.o@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox