Closed haolongzhangm closed 2 years ago
riscv64-unknown-linux-gnu-g++ -march=rv64gcv0p7 -mabi=lp64d, we cat find when use "vcreate_" gcc will create so much no need vector ,eg v8 v9...., and performance is so pooling
when build with -march=rv64gcv, do not find this issue when use "vcreate_" , but now, there so so many board are v07 rvv, so
need fix issue
RVV0.7 is no longer maintained. The latest actively maintained RVV GCC is the branch "rvv-next" which support the official RVV1.0 intrinsics and auto-vectorization. Same situation for LLVM.
@zhongjuzhe but there are so many board just support v0.7 standard, if build with 1.0 , will crash caused by unkown instruct how to fix this
what is more, so many software always have LTS version, which means need fix issue on this version
eg. now latest ubuntu is 22.04, but community also fix issue find on 20.04,
what is more, linux kernel is the same logic
why riscv-gnu-toolchain do not?
just ask you use rvv-next or latest is not a good idea.
what is more, the requirement is not ask to modify rvv 0.7 doc-spec, is fix riscv-gnu-toolchain optimize issue
In general non-upstream branches (incl. the one mentioned for RVV 0.7) are not supported/maintained. The RVV 0.7 specification is not a ratified extension (but we all know it is implemented in available HW). Given the support for the ratified RVV 1.0 extension is not upstream as of now, there is no chance of getting RVV 0.7 upstream. Therefore nobody is looking at this at the moment.
no need release RVV 0.7 , just fix the optimize issue when user set -march=rv64gcv0p7 at latest release (rvv-next?)
I think this is a optpass issue, not RVV 0.7 issue
As I said, nobody is working with these branches anymore as everyone is working on branches that target upstream.
so "target upstream" can not do the fix?
Not sure which toolchain you are usign, but currently we are targeting rvv 1.0 only for upstream, which is the FSF GCC, is not upstream yet, but that review in progress.
@kito-cheng may u can just test the test code with "-march=rv64gcv0p7" and "-march=rv64gcv"
@haolongzhangm could you post your gcc version info by riscv64-unknown-elf-gcc --version
? that sounds like a T-head toolchain?
@kito-cheng
riscv64-unknown-linux-gnu-g++ (Xuantie-900 linux-5.10.4 glibc gcc Toolchain V2.2.6 B-20220516) 10.2.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Hmmm, I think you might report to T-head guys rather than report here, @rjiejie
@kito-cheng so thanks for you suggest
@rjiejie need i create a new issue or not ? or just follow this one
@kito-cheng so thanks for you suggest
@rjiejie need i create a new issue or not ? or just follow this one
Follow this is ok also, and we do some optimization for it. we will ship this optimization in version v2.6.1, you can download toolchain from https://occ.t-head.cn/community/download?id=4073475960903634944 if it released :)
@rjiejie I test Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.0-20220715.tar.gz , issue more severe
u can test the example code at the head of this issue
so any base test code for rvv api performance test?
what`s more, Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.0-20220715.tar.gz upgrade libc depends to GLIBC_2.33 ?
The latest actively maintained RVV GCC is the branch "rvv-next" which support the official RVV1.0 intrinsics and auto-vectorization.
For some reason I can find the old rvv-0.7x branch but none seems to match "rvv-next":
Could someone please guide me on where is the latest branch (one in progress for merged in upstream GCC).
Thanks
You should pull latest riscv gnu toolchain, there is no rvv-0.7x branch any more. The only RVV branch is called "rvv-next" in riscv-gnu-toolchain. And you also should pull the latest "riscv-gcc-rvv-next" branch in riscv-gcc.
The rvv-next support full feature RVV1.0. And it is going to merged in upstream GCC. I am working on splitting rvv-next into small patches to upstream GCC so that reviewers can easily review that. So far there are part of the rvv-next codes already merged in upstream GCC. But for full support, you still need to use rvv-next.
Questions relating to non-standard pre-ratification v0.0.7 vector extension used/implemented in some RISC-V cores (see here for example: https://github.com/riscv/riscv-v-spec/issues/667) and how to build the latest rvv-next
branch, answered.