On August 23, the RISC-V China Summit was held at the Beijing Shangri-La Hotel. During its three-day agenda, the RISC-V Inetrnational foundation, industry experts, enterprise representatives, and friends from the various communities congregated to explore RISC-V's future development and opportunities, as well as to present on new products and technologies. Thanks to the hard work of our colleagues at the PLCT Lab and TARSIER in coordination, presentations, and hosting, our largest and most attended summit yet saw great success.
We hope to see you again next year!
- Chinese: RuyiSDK Team at the 2023 RISC-V China Summit, Presenting on Latest Development Results
- Chinese: Recap - TARSIER Open Day and RISC-V Open Source Operating System Progression Seminar
- Chinese: Recap - The 3rd RISC-V Technology and Ecosystem (RVTE) Seminar
- [riscv][compiler] Generalize InstructionSelectorT for Turboshafts-Part 13(https://chromium-review.googlesource.com/c/v8/v8/+/4819612)
- [riscv][codegen] Fix RiscvCvtSD and CvtDS codegen(https://chromium-review.googlesource.com/c/v8/v8/+/4781027)
- [riscv][wasm] Fix memory.fill and memory.init with i64.const args(https://chromium-review.googlesource.com/c/v8/v8/+/4779385)
- [riscv] Reduce the vector arch code-Part 8(https://chromium-review.googlesource.com/c/v8/v8/+/4816308)
- [riscv] Reduce the vector arch code-Part 7(https://chromium-review.googlesource.com/c/v8/v8/+/4795894)
- [riscv] Reduce riscv Vector arch code-Part 6(https://chromium-review.googlesource.com/c/v8/v8/+/4787659)
- Co-authored jdk-mainline pull requests.
- More RISC-V update for PR11044: openjdk/jdk#11044 (comment)
- Add RISC-V update for PR14375: openjdk/jdk#14375 (comment)
- Reviewed jdk-mainline pull requests.
- openjdk/jdk#15140 (8313707: GHA: Bootstrap sysroots with --variant=minbase)
- openjdk/jdk#15149 (8313701: GHA: RISC-V should use the official repository for bootstrap)
- openjdk/jdk#15362 (8314656: GHA: No need for Debian ports keyring installation after JDK-8313701)
- openjdk/jdk#14545 (8308984: Relativize last_sp (and top_frame_sp) in interpreter frames)
- openjdk/jdk#14576 (8308340: C2: Idealize Fma nodes)
- openjdk/jdk#14800 (8311548: AArch64: [ZGC] Many tests fail with "assert(allocates2(pc)) failed: not in CodeBuffer memory" on some CPUs)
- openjdk/jdk#14823 (8311862: RISC-V: small improvements to shift immediate instructions)
- openjdk/jdk#14848 (8311923: TestIRMatching.java fails on RISC-V)
- openjdk/jdk#14888 (8312014: [s390x] TestSigInfoInHsErrFile.java Failure)
- openjdk/jdk#14129 (8301996: Move field resolution information out of the cpCache)
- openjdk/jdk#14991 (8312569: RISC-V: Missing intrinsics for Math.ceil, floor, rint)
- Reviewed JDK17u upstream PRs.
- openjdk/jdk17u-dev#1565 (8297476: Increase InlineSmallCode default from 1000 to 2500 for RISC-V)
- openjdk/jdk17u-dev#1567 (8309254: Implement fast-path for ASCII-compatible CharsetEncoders on RISC-V)
- openjdk/jdk17u-dev#1613 (8312511: GHA: Bump cross-compile runner to Ubuntu 22.04)
- openjdk/jdk17u-dev#1611 (8311923: TestIRMatching.java fails on RISC-V)
- Building and testing pull requests backported from
riscv-port-jdk11u backport
.- openjdk/riscv-port-jdk11u#3 (8276799: Implementation of JEP 422: Linux/RISC-V Port)
- Diagnose new JVM bug with Cao Gui (曹贵).
- https://bugs.openjdk.org/browse/JDK-8314612 (TestUnorderedReduction.java fails on AArch64 SVE with -XX:MaxVectorSize=32 and -XX:+AvoidUnalignedAccesses)
- Fei Yang adopted as HotSpot Group Member:
- Submitted and merged JDK-mainline patches.
- openjdk/jdk#15429 (8314283: Support for NSS tests on aarch64 platforms)
- openjdk/jdk#15356 (8314618: RISC-V: -XX:MaxVectorSize does not work as expected)
- Submitted and merged JDK-mainline patches.
- openjdk/jdk#15356 | 8314618: RISC-V: -XX:MaxVectorSize does not work as expected
- Backports from jdk21u.
- openjdk/jdk21u#80 | 8314618: RISC-V: -XX:MaxVectorSize does not work as expected
- OpenJDK auto-vectorisation bug investigation.
- https://bugs.openjdk.org/browse/JDK-8314612 | TestUnorderedReduction.java fails on AArch64 SVE with -XX:MaxVectorSize=32 and -XX:+AvoidUnalignedAccesses
- [ValueTracking] hasPassPointeeByValueCopyAttr implies well-defined https://reviews.llvm.org/D157949
- [SCCP] Replace valuestate.isConstant with helper isConstant https://reviews.llvm.org/D153717
- [ValueTracking] Dereferenceable and !NullPointerIsDefined imply non-zero https://reviews.llvm.org/D157253
- [SCCP][PhaseOrdering] Mark Overdefined for loading from null https://reviews.llvm.org/D157408
- [ValueTracking] Dereferenceable ret attributes implys noundef https://reviews.llvm.org/D156510
- [MemoryDependencyAnalysis] Delete cache infos if CacheInfo->size != Loc.size https://reviews.llvm.org/D154323
- [SDAG][RISCV] Avoid folding setcc (xor C1, -1), C2, cond into
setcc (xor C2, -1), C1, cond
https://reviews.llvm.org/D158654 - [InstCombine] Fold two select patterns into or-and https://reviews.llvm.org/D158983
- [RISCV] Fix rlist grammar for cm.push, cm.popret, cm.popretz and cm.pop in RISCV zcmp Extension https://reviews.llvm.org/D157472
- [RISCV] Fix
vmsge{u}.vx
lowering by not adding the mask operand ifvd == v0
https://reviews.llvm.org/D158392 - [VP][RISCV] Add vp.is.fpclass and RISC-V support https://reviews.llvm.org/D152993
We continued working on assembler support for RVV 0.7.1, which is now > 90% complete.
- [RVV 0.7.1] MC support ruyisdk/llvm-project#4
- [RVV 0.7.1] reject when both v and xtheadv are specified ruyisdk/llvm-project#5
- [RVV 0.7.1] port assembler tests from binutils ruyisdk/llvm-project#6
- [RVV 0.7.1] add vector integer compare pseudos, the vv case ruyisdk/llvm-project#7
- [RVV 0.7.1] add vector integer compare pseudos, the vx case ruyisdk/llvm-project#8
- [RVV 0.7.1] ensure vmsge{u}.vx does not use the same register for emporary and destination #9 ruyisdk/llvm-project#9
- [RVV 0.7.1] add vector integer compare, the vi case ruyisdk/llvm-project#10
- [RVV 0.7.1] Implement all psuedos that can be lowered inplace ruyisdk/llvm-project#11
No update this month.
- Zc extension support for GCC and Binutils partially merged upstream.
- Optimized rvv-intrinsic generator.
- RVV bugfixes.
- RuyiSDK: Backported CMO extension support to GCC 10.4.
- WIP: Introduce RVV 0.7 intrinsic support to GCC 13.
- WIP: Fedora N32 port.
- Publications.
No update this month.
No update this month.
- starfive visionfive2: update kernel to 6.5.0-rc1 NixOS/nixos-hardware#676
- starfive visionfive2: use stable opensbi release NixOS/nixos-hardware#699
- starfive visionfive2: drop outdated kernel patches NixOS/nixos-hardware#700
- ima-evm-utils: fix cross compilation, set strictDeps NixOS/nixpkgs#247845
- mate.libmateweather: fix cross compilation, set strictDeps NixOS/nixpkgs#249858
- borgbackup: use python3Packages instead of python3.pkgs to fix cross compilation NixOS/nixpkgs#249862
- python3Packages.pythonNamespacesHook: use findutils from buildPackages NixOS/nixpkgs#249864
Porting upstream updates.
- https://phabricator.services.mozilla.com/D187163
- https://phabricator.services.mozilla.com/D187164
- https://phabricator.services.mozilla.com/D187165
We made good progress this month. DynamoRIO RISCV64 can now run single threaded C programs, such as most common Linux commands.
Next, we will move to implement multi-threaded support, as it will be needed for larger applications. You may check out the current progress at https://github.com/ruyisdk/dynamorio. As we continue to implement support, we will begin moving these improvements upstream.
Upstreamed changes.
Submitted changes, merge pending.
- Automated OpenCV Universal Intrinsic code migrator for the RVV backend.
- Git repository: https://github.com/hanliutong/rewriter
- More patches generated by the rewriter were submitted upstream.
No update this month.
No update this month.
No update this month.
No update this month.
No update this month.
No update this month.
No update this month.
Shi Ninging (史宁宁) continues to work on compiling the OpenArkCompiler Weekly, which just published its 176th issue.
You may find new weekly issues of the OpenArkCompiler Weekly on Sundays on...
- GitHub: https://github.com/isrc-cas/arkcompiler-materials
- Zhihu: https://zhuanlan.zhihu.com/openarkcompiler
- Bilibili: https://www.bilibili.com/read/readlist/rl199373
- Mailing list and other channels: https://gitee.com/openarkcompiler/OpenArkCompiler/issues/I1EWAX
- MLIR Vector Dialect Dynamic Vector Length Support.
- Proposal complete: Universal Vector Dialect SetVL Operation + Dynamic Vector Type.
- To be announced as a community RFC after peer review with our partners at Google.
- Buddy Compiler Homepage - https://buddy-compiler.github.io/
- Buddy Compiler's OSPP 2023 Project Home - https://summer-ospp.ac.cn/org/orgdetail/8d995d4c-b188-4690-9a53-c022dc7c19e3?lang=zh
buddy-mlir
Code repository: https://github.com/buddy-compiler/buddy-mlir
- [DIP] Accelerate rotation2D.
- [examples] Add Conv2D, MatMul, Tranform cases.
- [frontend] Add text container.
buddy-benchmark
Code repository: https://github.com/buddy-compiler/buddy-benchmark
- [OpOptimization] Add conv2d_nchw_fchw_im2col_broadcast cases.
- [DL] Add MiniLM to deep learning benchmark.
- [DL] Add VGG MLIR model.
No update this month.
- target/riscv: fix execute_fence
- fix: crash when we try to read vector register on a running target
- target/riscv: Add support for Sv57 (and Sv57x4) translation mode
- pmu计数器不连续的支持,移除mhpm_count,通过mhpm_mask记录哪些计数器是支持的。1
- 修正Makefile中grep的一个警告。1
- 修正查找event计数器中的一个拼写错误。1
- __fw_rw_offset改为运行时计算,以规避clang16+编译报错。1
- 把fdt_parse_isa_extensions移动到coolboot中防止操作系统破坏fdt后再解析isa扩展。1
- 平台制定tlb队列长度支持,tlb队列改为通过堆申请。1 2
- 修正c9xx pmu引起hang,允许s-mode访问相关寄存器。1
- 重定义SBI_IPI_EVENT_MAX,移除机器长度和long长度相同的假定。1
- 修改测试payload,使用debug console。1
- 改进sbi_hartmask,从记录hartid改为记录hart index,减少间隙。1
No update this month.
No update this month.
- bpf-developer-tutorial: link
- 1000+ star milestone!
- Introduced a series of new tutorials, such as SSL hook.
- eBPF userspace tools.
- bpf-benchmark, testsuite for eBPF runtime performance (supports llvm-jit, ubpf, and ebpf.
- Reported a segfault in rbpf, which is already fixed, ref
- Implemented a PoC for userspace eBPF syscall tracing and benchmarked this PoC against implementation in kernel.
- Profiled libbpf syscalls as it loads eBPF and implemented a PoC for usersapce libbpf.
- eunomia-bpf
No update this month.
- Evaluated RISC-V testing and migration platforms.
- Tested GitLab webhook.
- Built libjpeg-turbo, openjepg, ncnn, and opencv in local riscv64 Ubuntu, Fedora, and openEuler containers, recording the procedures in Jenkinsfiles.
- Tested Jenkinsfiles on x86, VisionFive, Unmatched, LicheePi 4A, and SG2042 hardware.
- Updated testing reports.
- Evaluated interface and compiler tests in openEuler RISC-V's testing policy.
- Built and ran API Sanity Checker for interface testing on openEuler RISC-V, authoring documentation.
- Built and ran the Csmith compiler testsuite, authoring documentation.