Abstract
Whilst the RISC-V Vector extension (RVV) has been ratified, at the time of writing both hardware implementations and open source software support are still limited for vectorisation on RISC-V. This is important because vectorisation is crucial to obtaining good performance for High Performance Computing (HPC) workloads and, as of April 2023, the Allwinner D1 SoC, containing the XuanTie C906 processor, is the only mass-produced and commercially available hardware supporting RVV. This paper surveys the current state of RISC-V vectorisation as of 2023, reporting the landscape of both the hardware and software ecosystem. Driving our discussion from experiences in setting up the Allwinner D1 as part of the EPCC RISC-V testbed, we report the results of benchmarking the Allwinner D1 using the RAJA Performance Suite, which demonstrated reasonable vectorisation speedup using vendor-provided compiler, as well as favourable performance compared to the StarFive VisionFive V2 with SiFive’s U74 processor.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The Zvl32b and Zvl64b extensions allow for a smaller minimum VLEN of 32 and 64 bits respectively.
References
Architectures/RISC-v/allwinner - fedora project wiki. https://fedoraproject.org/wiki/Architectures/RISC-V/Allwinner
Architectures/RISC-v/installing - fedora project wiki. https://fedoraproject.org/wiki/Architectures/RISC-V/Installing
Download ubuntu for RISC-v platforms. https://ubuntu.com/download/risc-v
ExCALIBUR H &ES RISC-V testbed. http://riscv.epcc.ed.ac.uk/
How to setup additional ‘perf’ events on the HiFive unmatched. https://arch.cs.ucdavis.edu/blog/2022-09-15-perf-hifive
RISC-V: AX45MPV. https://www.andestech.com/en/products-solutions/andescore-processors/riscv-ax45mpv/
RISC-V:NX27V. https://www.andestech.com/en/products-solutions/andescore-processors/riscv-nx27v/
riscv-p-spec/P-ext-proposal.pdf at master \(\cdot \) riscv/riscv-p-spec \(\cdot \) GitHub. https://github.com/riscv/riscv-p-spec/blob/master/P-ext-proposal.pdf
SiFive Intelligence X280. https://www.sifive.com/cores/intelligence-x280
SiFive Performance. https://www.sifive.com/cores/performance
T-Head Open Chip Community Download. https://occ.t-head.cn/community/download
Timing analyzer clock analysis. https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/design-software/timinganalyzer/clocking/tq-clock.html
RISC-V “V” Vector Extension 1.0 (2021). https://github.com/riscv/riscv-v-spec/releases/tag/v1.0
Vehave User Guide \(\cdot \) Wiki \(\cdot \) EPI-public/RISC-V Vector Environment \(\cdot \) GitLab (2021). https://repo.hca.bsc.es/gitlab/epi-public/risc-v-vector-simulation-environment/-/wikis/Vehave-User-Guide
BSC Risc-V Vector Toolchain \(\cdot \) Wiki \(\cdot \) EPI-public/RISC-V Vector Environment \(\cdot \) GitLab (2022). https://repo.hca.bsc.es/gitlab/epi-public/risc-v-vector-simulation-environment/-/wikis/BSC-RISC%E2%80%90V-Vector-Toolchain
MLCommons MLPerf Inference Tiny v0.7 Results (2022). https://mlcommons.org/
Ocelot: The Berkeley Out-of-Order RISC-V Processor with Vector Support (2023). https://github.com/tenstorrent/riscv-ocelot
OpenC906 (2023). https://github.com/T-head-Semi/openc906
RAJA Performance Suite (2023). https://github.com/LLNL/RAJAPerf
RISC-V Vector Extension Intrinsic Document (2023). https://github.com/riscv-non-isa/rvv-intrinsic-doc
Adit, N., Sampson, A.: Performance left on the table: an evaluation of compiler autovectorization for RISC-V. IEEE Micro 42(5), 41–48 (2022). https://doi.org/10.1109/MM.2022.3184867
Cavalcante, M., Schuiki, F., Zaruba, F., Schaffner, M., Benini, L.: Ara: A 1-GHz+ scalable and energy-efficient RISC-V vector processor with multiprecision floating-point support in 22-nm FD-SOI. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 28(2), 530–543 (2020). https://doi.org/10.1109/TVLSI.2019.2950087
Waterman, A., Asanovic̀, K. (eds.): The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213. RISC-V FOUNDATION (2019)
GNU, International, R.V.: RISC-V GNU compiler toolchain (RVV-next branch). https://github.com/riscv-collab/riscv-gnu-toolchain/tree/rvv-next
Wang, H., et al.: RISC-V vector extension intrinsic API reference manual. https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142187133/Xuantie+900+Series+RVV-0.7.1+Intrinsic+Manual.pdf#section*.243
Lee, J.K.L., Jamieson, M., Brown, N.: Backporting RISC-V vector assembly. In: Bienz, A., Weiland, M., Baboulin, M., Kruse, C. (eds.) ISC High Performance 2023 International Workshops. LNCS, vol. 13999, pp. 433–443. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-40843-4_32
Minervini, F., et al.: Vitruvius+: an area-efficient RISC-V decoupled vector coprocessor for high performance computing applications. ACM Trans. Archit. Code Optim. 20, 1–25 (2022). https://doi.org/10.1145/3575861
Odajima, T., Kodama, Y., Sato, M.: Performance and power consumption analysis of arm scalable vector extension. J. Supercomput. 77(6), 5757–5778 (2020). https://doi.org/10.1007/s11227-020-03495-5
Perotti, M., Cavalcante, M., Wistoff, N., Andri, R., Cavigelli, L., Benini, L.: A “New Ara” for vector computing: an open source highly efficient RISC-V V 1.0 vector processor design. In: 2022 IEEE 33rd International Conference on Application-specific Systems, Architectures and Processors (ASAP), pp. 43–51 (2022). https://doi.org/10.1109/ASAP54787.2022.00017. iSSN: 2160-052X
Poenaru, A., McIntosh-Smith, S.: Evaluating the effectiveness of a vector-length-agnostic instruction set. In: Malawski, M., Rzadca, K. (eds.) Euro-Par 2020. LNCS, vol. 12247, pp. 98–114. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-57675-2_7
Pohl, A., Greese, M., Cosenza, B., Juurlink, B.: A performance analysis of vector length agnostic code. In: 2019 International Conference on High Performance Computing & Simulation (HPCS), pp. 159–164. IEEE, Dublin (2019). https://doi.org/10.1109/HPCS48598.2019.9188238. ISBN: 9781728144849
Ramírez, C., Hernández, C.A., Palomar, O., Unsal, O., Ramírez, M.A., Cristal, A.: A RISC-V simulator and benchmark suite for designing and evaluating vector architectures. ACM Trans. Archit. Code Optim. 17(4), 1–30 (2020). https://doi.org/10.1145/3422667
Schmidt, C., Ou, A., Asanović, K.: Hwacha V4: decoupled data parallel custom extension. https://riscv.org/wp-content/uploads/2018/12/Hwacha-A-Data-Parallel-RISC-V-Extension-and-Implementation-Schmidt-Ou-.pdf
Schmidt, C., et al.: An eight-core 1.44-GHz RISC-V vector processor in 16-nm FinFET. IEEE J. Solid-State Circ. 57(1), 140–152 (2022). https://doi.org/10.1109/JSSC.2021.3118046
Soria-Pardos, V., Armejach, A., Suárez, D., Moretó, M.: On the use of many-core Marvell ThunderX2 processor for HPC workloads. J. Supercomput. 77(4), 3315–3338 (2020). https://doi.org/10.1007/s11227-020-03397-6
Xianyi, Z.: OpenBLAS (2023). https://github.com/xianyi/OpenBLAS
Acknowledgement
The authors would like to thank the ExCALIBUR H &ES RISC-V testbed for access to compute resource used in this work.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Lee, J.K.L., Jamieson, M., Brown, N., Jesus, R. (2023). Test-Driving RISC-V Vector Hardware for HPC. In: Bienz, A., Weiland, M., Baboulin, M., Kruse, C. (eds) High Performance Computing. ISC High Performance 2023. Lecture Notes in Computer Science, vol 13999. Springer, Cham. https://doi.org/10.1007/978-3-031-40843-4_31
Download citation
DOI: https://doi.org/10.1007/978-3-031-40843-4_31
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-40842-7
Online ISBN: 978-3-031-40843-4
eBook Packages: Computer ScienceComputer Science (R0)