Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
XYenChi committed Oct 23, 2024
1 parent 5944cba commit 6d11c46
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions content/nonsence/20241023.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "10月23日工作记录"
date: "2024-10-23T11:30:03+00:00"
draft: false
---
明天可能需要开同步会议,今天先总结一下近日工作。另外的考量是确实有点摸不着头脑自己在干啥了。一种没有清晰把握脉络的焦虑感促使我写这篇记录。

### 按照时间顺序
首先肯定是发现了 `riscv-vector-fuzzing-test` 这个项目里面在使用 /include/CustomOperator.def 当所有需要处理的指令合集。
问题在于出现了生成的intrinsic function参数个数不对,进行同步发现 rvv 1.0 spec可能需要使用 `sifive-intrinsic-doc` 这个项目中生成的 `rif.def` 文件。
直接把 `rif.def` 修改为 `CustomOperator.def` 使用会出现以下问题:
1. SizePtr, NeedMerge, Void 这些属性无法识别。
暂时用移除 vleff, vslideup, vsm 等指令来解决。
2. `riscv-vector-fuzzing-test``script/GenerateOperatorComputeHeaders.py` 无法识别 `op id`
暂时移除 vcreate, veget, vlm, vlmul_trunc, vlmul_ext, vreinterpret, vsetvlmax, vsetvl, vundefined, vlse 等指令来解决。
3. 生成的 `\include\autogen\compute{op_type}.h` 中 include 的 spike 或者本地头文件名不对。
在 script/* 中加入判断 `op_id` 进行了修复。比如 vfmv_v_f, vfmv_f_s。
4. 尚未找出 `CustomOperator.def` 中为何会如此生成。比如compress_vv, spec 中是 compress_vm。
暂时移除 compress_vv 解决。
当以上 `CustomOperator.def` 的问题大部分用跳过的方式解决之后,出现了 mask 指令在 `\include\autogen\compute{op_type}.h` 声明的变量数量不一致的问题。
解决方式是在 `script\*Literal.py` 中的 create_*_op 函数,加入判断,如果是 mask function 之后加入一个 input 作为 mask function 默认的 vd 值。并修改了 *_literal_mask_body 中的参数。
随后出现了有 rounding mode 的指令参数不正确的问题。
解决方式是在 `script\*Literal.py` 加入如果 input_type 中有 "SclarUIntXLen" 就使用新增的包含 rounding mode 的 *_frm_body。
但是使用 "SclarUIntXLen" 是根据观察决定的,导致了包含该 input type 但没有 rounding mode 的 shift 指令生成错误。所以判断条件变为 `elif "ScalarUIntXLen" in input_types and op_id not in ['nsra_wx','nsrl_wx','sll_vx','sra_vx','srl_vx']`。 可能有待改进。
以上问题解决完毕之后,出现了 `/test/test*.cpp` 的参数没有定义的问题,根据该参数为 op_type 将所有文件按照 `CustomOperator.def` 修改完毕解决了没有定义问题,但是 `testPolicy.cpp` 中带有 TA, TU, TAMA, TAMU, TUMA, TUMU 后缀的参数确实不知道在哪里找。
可以确定是只是 rvv 1.0 中对 tail policy 的内容进行了修改,这部分肯定是需要修的。
接下来有靠谱的方法,理解 test\test*.cpp 从何而来,为何要写并改写。
不靠谱的方法,删掉 testPolicy.cpp。因为生成脚本中很多有ta相关内容我也并未修复。
先去修了,小结就到这里。

0 comments on commit 6d11c46

Please sign in to comment.