riscv-software-src / homebrew-riscv

homebrew (macOS) packages for RISC-V toolchain
https://riscv.org
304 stars 50 forks source link

workaround for enabling rvv #109

Open howjmay opened 11 months ago

howjmay commented 11 months ago

RVV has been supported since gcc-13. An option is added here to enable RISC-V vector extensions building, since gcc is not bumped to gcc-13 yet in toolchain

see

fanghuaqi commented 11 months ago

Hi @howjmay , gcc13 only support rvv intrinsic 0.11, see https://gcc.gnu.org/gcc-13/changes.html

If you want to use rvv intrinsic 0.12 which is almost nearly the v1.0 version, see https://github.com/riscv-non-isa/rvv-intrinsic-doc/issues/241, you will need to use gcc master branch which is gcc 14 actively developed.

howjmay commented 11 months ago

So it is better to bump the gcc version here from 13 to 14 or adding another option to install with gcc-14?

robertlipe commented 8 months ago

Being so far behind the gun on GCC13, and with 14 adding so many features vital for C++ conformance (See http://gcc.gnu.org/gcc-14/changes.html ) but particularly RVV support which is a hot topic for our RISC-V devs - and likely to grow more now that production 1.0 silicon can (finally) be purchased in low-cost (~$40USD) dev boards (C908/K230) and SG2380 probably real in the next few months. C907 shouldn't be TOO far behind it.

After the turn of the calendar to 2024, GCC14 should enter "regressions only bugfixing" mode (stage4) mode.

I'd suggest that if we'd consider adding an optional developer "early preview" version in the near future that we base it on GCC14 instead of 13, which has been the 'official' collabortors version for a while now https://github.com/riscv-collab/riscv-gnu-toolchain/commit/1d9d2ce4058faadc56922746da7b41f557efafd1 and I think we got lost in merge noise https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1239

I haven't tried a build lately, but generally Stage 4 is a pretty quiet time as the trees are entering a stabilizing phase - one that we could help ensure lands safely for our MacOS devs.

OTOH, an upgrade to even 13.2 would be a big help if that's considered too risky. That would solve the OP. I suppose we have three real options:

1) Refresh with the 13.2 generation, which would get us some fmt, c++23, and RVV1. 2) Refresh with 14-development branch, which gets us more of all those. 3) Wait another quarter or so for 14.0 and start then.

I'm not a homebrew dev, my days as a GCC maintainer are 20+ years ago, and I don't do Ruby, but if someone would like a hand/machine cycles and can give me a nickel tour of "this is how we do a homebrew build and this is our test/acceptance criteria", contact me at this name via gmail. I'm willing to help make it happen as I need G++ 14 anyway.

sbeamer commented 8 months ago

@robertlipe this homebrew repo has been pretty lax as you can see. With a more sophisticated formula (build instructions), we could build arbitrary versions of gcc and the rest of the toolchain (#36). Thus far, I have taken the path of least resistance by taking whatever the riscv-gnu-toolchain repo provides. It sounds like when that crosses over to gcc 14, perhaps we can get rvv in here without too much fuss.

This repo so far has unfortunately never been able to support all use cases. As more RISC-V silicon becomes available, it may be worth reconsidering what are the most common use cases, and what is feasible to support via homebrew.