-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
30 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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相关内容我也并未修复。 | ||
先去修了,小结就到这里。 | ||
|