joe 发表于 2022-5-17 15:36:30

东亚时区RISC-V双周会(20220512)

东亚时区RISC-V双周会
2022年05月12日·第035次
https://github.com/cnrv/RISCV-East-Asia-Biweekly-Sync
Host: qiuji@iscas.ac.cn
Organizer: PLCT Lab wuwei2016@iscas.ac.cn会议议程(15:00 - 16:00)
● 自我介绍、等待参会者接入、非技术话题八卦(5分钟)
● RVI 的更新和八卦(基本上跟东亚双周会群内消息同步)
● Unratified Specs 的参考实现进展
● 东亚地区小伙伴的项目更新
● 自由讨论RISC-V International 同步
● 22Q1的满一年的chairs/co-chairs改选开始了
● RISC-V Profiles 的推动和可能的麻烦?
● DartVM 有了初步的 RISC-V 支持
● N家开源了Linux显卡驱动AOSP for RISC-V - 汪辰、陆旭凡
* RVI upstream:
- redo prebuilt ndk for 12: https://github.com/riscv-android-src/platform-prebuilts-ndk/pull/2
- fixed some typo issues: https://github.com/riscv-android-src/platform-bionic/pull/20
- fixed issue for setjmp: https://github.com/riscv-android-src/platform-bionic/pull/21
- using 0x0001(c.addi) as padding bytes: https://github.com/riscv-android-src/platform-bionic/pull/23
* aosp-riscv development
- PR for Disable dex2oat: https://gitee.com/aosp-riscv/platform_build/pulls/5 review 中
- completed sync mem* from RVI upstream:https://gitee.com/aosp-riscv/platform_bionic/pulls/22
- fix setjmp issue: https://gitee.com/aosp-riscv/platform_bionic/pulls/21
- sync from rvi upstream:https://gitee.com/aosp-riscv/platform_bionic/pulls/19
- added log after fixed setjmp issue:https://gitee.com/aosp-riscv/test-riscv/pulls/18
- enable those disabled cases: https://gitee.com/aosp-riscv/test-riscv/pulls/19
* Articles:
- PR for the analysis of RenderScript in Android 12 RISCV64 porting: https://gitee.com/aosp-riscv/working-group/pulls/34
review 中
- add article about setjmp:https://gitee.com/aosp-riscv/working-group/pulls/35,https://zhuanlan.zhihu.com/p/512648599RISC-V GCC进展
目前RVI正在讨论自定义扩展vendor extension实现规范,目前Sifive,Ventana,T-head三家公司已经参与其中
https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/17
https://sourceware.org/pipermail/binutils/2022-April/120454.html
https://sourceware.org/pipermail/binutils/2022-April/120446.html
Zicntr与Zihpm的兼容方案仍在 讨论中
https://docs.google.com/presentation/d/1saweo3wMmbRCuxDBA657tCijD1n3H1Xy8J2PMRyFMKQ/edit#slide=id.g1228ebbb203_0_21
RISCV-GNU-Toolchain仓库新增了RVV分支,方便进行构建使用
https://github.com/riscv-collab/riscv-gnu-toolchain/tree/rvv-next
已经确认CMO的指令形式,和binutils upstream保持一致, 重新发送了patch
https://gcc.gnu.org/pipermail/gcc-patches/2022-May/594372.html
和Palmer讨论修复了gcc上游的一些bug:
https://gcc.gnu.org/pipermail/gcc-patches/2022-May/594091.html
https://gcc.gnu.org/pipermail/gcc-patches/2022-May/593993.html https://gcc.gnu.org/pipermail/gcc-patches/2021-December/587468.html
RISC-V GNU Toolchain会议slides链接: https://docs.google.com/presentation/d/1cN8zHcPyQLod8ZYs7-S8Sf4vf0gakrqojUpZFBNrL9g/edit?usp=sharingClang/LLVM 进展 (PLCT)
Gollvm 我们建立了PLCT仓库
● https://github.com/plctlab/gollvm
● https://github.com/plctlab/gofrontend
● https://github.com/plctlab/libffi
Upstream被合并的patch,没有新的patch
● 添加clt intrinsic: https://reviews.llvm.org/D124348
● 给shuffle broadcast 添加初始代价:https://reviews.llvm.org/D124101
Zce好几个大佬来到plct仓库参与讨论,可能是个不合理的需求?
● https://github.com/plctlab/llvm-project/issues/41Clang / LLVM 社区的更新 (廖春玉、陆旭凡)
1. D125408, D125232, D125392 关于 vsetvli指令的部分冗余消除
2. D124693 Fold addiw from (add X, (addiw (lui C1, C2))) into load/store
address
3. D125108 Enable subregister liveness tracking for RVV.
4. D124639 Override
TargetLowering::shouldProduceAndByConstByHoistingConstFromShiftsLHS
OfAnd.QEMU/Spike 中 K / Zce / Zfinx /全家桶 进展 (PLCT)
● QEMU K 扩展支持目前已合并至上游
● Zce支持暂无更新
○ https://github.com/plctlab/plct-qemu/tree/plct-zce-0.70.0
○ https://github.com/plctlab/plct-spike/tree/plct-zce-dev-0.70.0
● Spike Zfinx暂无更新
○ https://github.com/riscv-software-src/riscv-isa-sim/pull/831V8 for RISC-V 更新(邱吉、陆亚涵)
Riscv64 upstream port and fix:
● 3629740: Enable some optional machine opcodes | https://chromium-review.googlesource.com/c/v8/v8/+/3629740
● 3631835: Delete kNoCondition | https://chromium-review.googlesource.com/c/v8/v8/+/3631835
● 3616169: Delete ”USE(array_buffer)“ | https://chromium-review.googlesource.com/c/v8/v8/+/3616169
● WIP: 3640195: Add clang cross build config for riscv64 | https://chromium-review.googlesource.com/c/chromium/src/+/3640195
Clang support for Chromium project:
○ https://chromium-review.googlesource.com/c/chromium/src/+/3500250
○ https://chromium-review.googlesource.com/c/chromium/src/+/3607571
○ WIP: Add clang cross build config for riscv64 https://chromium-review.googlesource.com/c/chromium/src/+/3640195
○ Clang status: (1)Lack of officially sysroot download support from Debian (2)Lack of full support of lld from LLVM
Riscv32:
● add.js pass(JIT demo works)
● PRs:
○ Implement RiscvAddPair (#581)
○ Port tarce into rv32 (#577)
○ Fix emit of divw/divuw/remw/remuw (#578)
○ Fix pass arg reg (#576)
○ Delete RV64I instr (#573)
○ Clean riscv64 code, port Ld to Lw, delete kRiscvLd, update test (#549)
○ changed lwu to lw (#561)
○ Partial fix of issue571. (#572)
○ Port the li/la related macro-assembler functions (#568)
○ Mark machine operator visitors to be implemented (#567)OpenJDK for RISC-V 更新(RV64及upstream)
         1.8285699:riscv: Provide information when hitting a HaltNode:https://github.com/openjdk/jdk/pull/8595
         2.8286367:riscv: riscv port is broken after JDK-8284161 :https://github.com/openjdk/jdk/pull/8595
         3.Comment typo of imm index:https://mail.openjdk.java.net/pipermail/riscv-port-dev/2022-May/000553.html (张定立)1.Rv32g dev c2 shining movptr:https://github.com/openjdk-riscv/jdk11u/pull/386 (史宁宁)
2.Fix check data dependency of movptr and li: https://github.com/openjdk-riscv/jdk11u/pull/384 (张定立)
3.Fix sign extension on loading immediates:https://github.com/openjdk-riscv/jdk11u/pull/383 (曹贵)
4.Fix addP_reg_reg instruct cannot match iRegI type under riscv 32-bit:https://github.com/openjdk-riscv/jdk11u/pull/389 (曹贵)
5.Fix slli shamt: https://github.com/openjdk-riscv/jdk11u/pull/390 (史宁宁)
OpenJDK for RISC-V 更新(RV32/PLCT)openEuler RISC-V
oerv OBS 构建
● openEuler:22.03工程的构建与包修复110+:https://build.tarsier-infra.com/project/show/openEuler:22.03
PR 新增 68个
● https://gitee.com/openeuler/RISC-V/blob/master/archive/weeklyreports/2022-05-05.md
RISC-V 软件源&每日镜像计划
● 镜像构建CI的搭建与部署
测试
● ORSP004 openEuler RISC-V 开发版本暂定发版测试流程
● 调研主流桌面发行版操作系统众测方法和流程,为编写openEuler测试proposal做准备
● 验证Xfce和Firefox在基于RISC-V openEuler源的安装和运行,内测反馈需要添加和修复的包
● 测试编译支持Xfce4的RISC-V openEuler内核,编写步骤文档
社区宣传
● 欧拉开源操作系统成功适配赛昉 VisionFive RISC-V 单板计算机Gentoo for RISC-V 的情况更新
● A total of 64 keywording commits: https://whale.plctlab.org/riscv/RISC-V-双周会/20220502/commits.txt
○ app-misc/reptyr: keyword 0.8.0 for ~riscv, and add riscv64 support
■ Keywording: 6024b640019ca55d6977e3836fb678d107e07e5e
■ Patch: 72ac7a65fce9351185111a2b42573aa4636efe8c
● dev-libs/ffcall-2.4: add vacall PIC support for Linux/riscv,
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27474f966c5c419ea4fd3a7cb050071d0f9d84c6
Upstream bug track:
https://savannah.gnu.org/bugs/?62422
● Launched two major projects
○ Binhost (glep-0078 and, exploit calculate-linux's facilities):
basic functionality, only available in intranet for now
○ Automatic testing system (based on tinderbox): beginningArch Linux RISC-V (东东)
1. 移植进度
2582 / 3030 (85.21%)
7129 / 9158 (77.84%)
2. Archriscv-packages merged 36 PR. highlights
Updpkg: firefox to 100
Updpkg: chromium to 101.0.4951Fedora for RISC-V
SRPM打包编译进度
13101 / 22832 (57.3%)
【TODO】
● 现在主要以主要模块化软件刷包为主,图形化桌面环境目标为辅。
● firefox/chromium 【TODO】
F36 highlights:
● koji build supported
● QEMU XFCE graphic desktop supported
软件版本:
● GCC 12.0.1 / Glibc 2.35
● Binutils 2.37-27 → 2.37-28
● Python 3.10.4 → 3.11
● Perl 5.34.1
● LLVM/Clang 13.1 → 14.0
● Rust 1.58.1→ 1.59.0
● QT-5.15.3 → QT-6【TODO】
Images:
● minimal Image : 314 rpm packages
● developer Image : 1231 rpm packages
● XFCE Image : 1506 rpm packages
● Workstation (GNOME&LXQT) Image: 预计6月初Debian for RISC-V
Summary: fix 5 ftbfs; open 8 upstream issues hope to support riscv64
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010361.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010381
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010507.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010442
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010807
https://github.com/quickfix/quickfix/issues/393
https://www.mail-archive.com/dev@commons.apache.org/msg72369.html
https://github.com/openMSX/debugger/issues/119
https://github.com/yhirose/cpp-httplib/issues/1266
https://github.com/virtualsquare/purelibc/issues/5

https://github.com/hashicorp/nomad-driver-lxc/issues/33
https://github.com/future-architect/vuls/issues/1457
https://github.com/micromdm/scep/issues/195FW相关更新 (王翔)
❖ opensbi
➢ 关于hart功能的更新
■ 通过几个特定的csr确定特权指令集的版本
■ 跟新基础指令集的字符串移除u/s
■ 移除一些功能检查通过特权指令集版本来替代
■ 芯片功能检查只执行一次,重启后不检测
➢ 当前opensbi的库硬编码了一些驱动和模块的数组,不利于二次开发。anup修改了
Makefile,通过一个脚本生成这些数组的源文件。anup的修改方案在生成的库中没有数组,
用户拿到库想要自己找到原始的数组信息,然后把自己的对象加到数组中。Jessica建议通
过生产特定的段的对象,然后构成数组,这样用户二次开发就不需要找到原始数组了。
anup不接受Jessica的建议,他认为需要添加特定的段,会影响用户的链接脚本。我建议把
这些数组放到一个源文件中和库一起发布,也没有被接受。
➢ D1添加HSM支持,D1可以使CPU断电,所以休眠前后需要保存恢复一些状态
➢ FDT cpu节点的status可以禁用cpu,添加对应的支持代码
➢ 修正rv32下访问mhpmeventh的代码,自由存在sscofpmf功能时才能访问mhpmeventhRISCV性能跟踪小队 - 陈小欧
1. 读Brendan Gregg的博客:https://zhuanlan.zhihu.com/p/513186797
2. 验证https://reviews.llvm.org/D122650 对issue#54163 #54161的影响
https://github.com/llvm/llvm-project/issues/54163
https://github.com/llvm/llvm-project/issues/54161
(导致SPEC CPU2017 Fortran程序编译失败,属于Flang Openmp的bug)香山开源RISC-V处理器 - ICT / PCL
- 昆明湖项目正式启动:TargetSpec06 15分/GHz @ ~3GHz
- 主线任务:V 扩展、H 扩展、代码可配置化重构等
- 性能优化:分前端、后端、访存、缓存等部分实现性能优化点
- 目前内部已讨论出一份优化点列表
- 后续将与企业 & 专家进一步沟通交流
- 任务列表整理后将开放,欢迎小伙伴们选取其中感兴趣的点参与开发MLIR RISC-V Vector (RVV) Dialect Proposal - 张洪滨
日常维护
- 同步 func dialect 的修改
等待 Review
- RFC Patch -https://reviews.llvm.org/D108536
- RFC Post -https://discourse.llvm.org/t/rfc-add-risc-v-vector-extension-rvv-dialect/4146/32
- MLIR + RVV 集成测试环境搭建文档 - https://gist.github.com/zhanghb97/ad44407e169de298911b8a4235e68497
- 关于统一集成测试配置的讨论 - https://discourse.llvm.org/t/rfc-add-risc-v-vector-extension-rvv-dialect/4146/32
在真正的 RVV 硬件上进行测试还需要等待...
- @Powderluv 伸出了援手 -https://discourse.llvm.org/t/rfc-add-risc-v-vector-extension-rvv-dialect/4146/33
         (收到私信回复,对方能提供的硬件是 RVV 0.8 版本的,RVV 1.0 版本还需要等一段时间,关于对方是什么机构,后续是
否可以购买产品还在等待回复)面向 RISC-V 的 OpenCV 情况更新 - 韩柳彤
● OpenCV 演进提案(OpenCV Evolution)Issue#21829:可变长向量指令的支持
在OE-27 - Wide Universal Intrinsics的基础上,进一步扩展Universal Intrinsics的能力,从而更
好的支持可变长向量体系结构。
示例项目:https://github.com/hanliutong/rvv-ui
● 新的RVV后端实现: intrin_rvv.hpp
● 与现有Universal Intrinsic用户代码的兼容性: PR#2
● 在汇编层面验证性能的提升
实现了部分新的UI接口(目前90%以上的接口及实现已经更新)
提供了复用当前 Universal Intrinsic 用户代码的方法,正在与上游社区讨论Chisel and Additional Technology / Sequencer
● 提交人在另一个会
● 欢迎 Phantom1003 入职
○ 验证专家,未来会对Rocket进行Fuzzing测试
● RocketChip
○ Legacy fix https://github.com/chipsalliance/rocket-chip/issues/2980
○ Remove object module https://github.com/chipsalliance/rocket-chip/pull/2967
○ Build fix https://github.com/chipsalliance/rocket-chip/pull/2969
○ Update opcodes https://github.com/chipsalliance/rocket-chip/pull/2972
● Chisel
○ Build System fix https://github.com/chipsalliance/chisel3/pull/2519
○ Build System fix https://github.com/chipsalliance/chisel3/pull/2501
○ BarrelShift https://github.com/chipsalliance/chisel3/pull/2518
● Arithmetic
○ SRT https://github.com/sequencer/arithmetic/pull/27
○ Chacha https://github.com/sequencer/arithmetic/pull/26 VM:为Linux添加虚存拓展支持-潘庆霖
●Spidermonkey for RISC-V - 吴伟
● 过去两周没有新的进展
○ 重新加入了 PLCT Roadmap 2022 计划
○ 但是这次并没有重新放入到LFX Mentorship(专业对口的太少了)
○ https://github.com/plctlab/gecko-dev-riscv/pull/3
● 欢迎感兴趣移植的小伙伴通过实习、兼职或全职形式加入
○ https://github.com/lazyparser/weloveinterns/blob/master/open-internships.md
○RISC-V 笔记本计划的进展 / 吴伟
● 过去2周硬件部分没有观察到有新的动作

● 软件部分,目光开始看向
○ LibreOffice: 我们很高兴有一位全职员工 钱耀津 同学 all in!
○ LuaJIT:呼唤勇士
○ DynamoRIO:呼唤勇士
○ Valgrind:呼唤勇士
○ DartVM:呼唤(还没搞清楚要呼唤啥)
○ Mono:需要么?
○ Chromium:SUSE上ok但是其它发行版还不行,呼唤勇士

joe 发表于 2022-5-17 15:38:52




页: [1]
查看完整版本: 东亚时区RISC-V双周会(20220512)