Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CTS]contractions test中kernel arg address错误 #84

Open
ziliangzl opened this issue Sep 3, 2024 · 3 comments
Open

[CTS]contractions test中kernel arg address错误 #84

ziliangzl opened this issue Sep 3, 2024 · 3 comments

Comments

@ziliangzl
Copy link

测试命令:

../build/test_conformance/contractions/test_contractions contractions_float_0

运行结果:
image
测试文件:contractions.zip
core1.log
object.cl
object.dump

在core1.log中,由于上传文件大小限制,只保留了log中的core1,并且是只包含第18次执行的代码(出现错误的代码)
在object.dump中,出现错误的代码部分如下:

800002c4: 83 22 05 00  	lw	t0, 0(a0)
800002c8: 23 2e 51 fe  	sw	t0, -4(sp)
800002cc: 83 22 c5 00  	lw	t0, 12(a0)
800002d0: 23 2c 51 fe  	sw	t0, -8(sp)
800002d4: 83 22 85 00  	lw	t0, 8(a0)
800002d8: 23 2a 51 fe  	sw	t0, -12(sp)
800002dc: 83 22 45 00  	lw	t0, 4(a0)
800002e0: 23 28 51 fe  	sw	t0, -16(sp)

以0x800002dc为例,core1.log中实际的执行结果为(错误的结果):

core   1: 0x800002dc (0x00452283) lw      x5, 4(x10)
core   1: 3 0x800002dc (0x00452283) x5  0xfff00000 mem 0x90700004

预期的结果(正确的结果):

core   0: 0x800002dc (0x00452283) lw      x5, 4(x10)
core   0: 3 0x800002dc (0x00452283) x5  0x90000000 mem 0x90700004

由于读取到的kernel arg address是随机错误的,所以在运行测试时,不一定会触发Memory address 0xfff00000 is invalid的问题,而是有可能显示为计算结果错误的问题。

@ziliangzl
Copy link
Author

该错误的kernel arg address的使用顺序总结:

core   1: 0x800002dc (0x00452283) lw      x5, 4(x10)
core   1: 3 0x800002dc (0x00452283) x5  0xfff00000 mem 0x90700004
core   1: 0x800002e0 (0xfe512823) sw      x5, -16(x2)
core   1: 3 0x800002e0 (0xfe512823) mem 0x70000404 0xfff00000
core   1: 0x800002f4 (0xff012303) lw      x6, -16(x2)
core   1: 3 0x800002f4 (0xff012303) x6  0xfff00000 mem 0x70000404
core   1: 0x800002fc (0x03f340d7) vadd.vx v1, v31, x6
core   1: 3 0x800002fc (0x03f340d7) c8_vstart 0x00000000 e32 m1 l32 v1  ffffffff 0x00011f80 00011f00 00011e80 00011e00 00011d80 00011d00 00011c80 00011c00 00011b80 00011b00 00011a80 00011a00 00011980 00011900 00011880 00011800 00011780 00011700 00011680 00011600 00011580 00011500 00011480 00011400 00011380 00011300 00011280 00011200 00011180 00011100 00011080 00011000
core   1: 0x80000304 (0x0000a0fb) vlw12.v v1, v1, 0
core   1: exception trap_load_access_fault, epc 0x80000304
core   1:           tval 0x00011000
core   1: >>>>  spike_end

@Jules-Kong
Copy link
Collaborator

@ziliangzl 除了contractions_float_0,具体还涉及到哪些用例啊?

@ziliangzl
Copy link
Author

根据腾讯文档中的测试结果截图,猜测所有contractions的测试都是一样的问题,但是我没有运行全部测试,无法下定论。
还有就是:

由于读取到的kernel arg address是随机错误的,所以在运行测试时,不一定会触发Memory address 0xfff00000 is invalid的问题,而是有可能显示为计算结果错误的问题。

所以很难通过单次运行测试来确定问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants