-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Adding Vector Segmented Loads/Stores to RISC-V V 1.0 implementation #382
Labels
arch-riscv
The RISC-V ISA
Comments
Hi @ivanfv, I'm just checking to see the status of this issue. Are you currently working on it? Thanks. |
Hi @ivanaamit , yes, I am working on this. Currently, I am validating the vector segmented loads implementation and I plan to create a pull request about them very soon. Thanks for checking this! |
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 5, 2024
This commit adds support for vector segmented unit-stride segment load operations for RISC-V vlseg<NF>e<X>. This implementation is based in two types of microops: - VlSeg uops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv uops that properly deinterleave structs into destination registers. Gem5 issue: gem5#382
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 5, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg uops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv uops that properly deinterleave structs into destination registers. Gem5 issue: gem5#382
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 5, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Gem5 issue: gem5#382
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 6, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 7, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97 Update src/arch/riscv/insts/vector.hh Change tmp_d0 to reference type Co-authored-by: Yu-Cheng Chang <aucixw45876@gmail.com> implemting fixes Change-Id: I5cd4ee2d13bddb9f3ae5e9c9920e58baff0717b6
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 7, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97 Update src/arch/riscv/insts/vector.hh Change tmp_d0 to reference type Co-authored-by: Yu-Cheng Chang <aucixw45876@gmail.com> implemting fixes Change-Id: I5cd4ee2d13bddb9f3ae5e9c9920e58baff0717b6
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 7, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97 Update src/arch/riscv/insts/vector.hh Change tmp_d0 to reference type Co-authored-by: Yu-Cheng Chang <aucixw45876@gmail.com> implemting fixes Change-Id: I5cd4ee2d13bddb9f3ae5e9c9920e58baff0717b6
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 9, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 9, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 9, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 9, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 9, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 12, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 12, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 13, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 13, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 14, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 14, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 19, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 20, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 21, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 22, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanfv
added a commit
to ivanfv/gem5
that referenced
this issue
Feb 26, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Issue: gem5#382 Change-Id: Iaba96d9000f244e824d89089a4f09b42ec130f97
ivanaamit
pushed a commit
that referenced
this issue
Mar 6, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Gem5 issue: #382
powerjg
pushed a commit
that referenced
this issue
Mar 22, 2024
This commit adds support for vector unit-stride segment store operations for RISC-V (vssegXeXX). This implementation is based in two types of microops: - VsSegIntrlv microops that properly interleave source registers into structs. - VsSeg microops that store data in memory as contiguous structs of several fields. Change-Id: Id80dd4e781743a60eb76c18b6a28061f8e9f723d Gem5 issue: #382
BobbyRBruce
pushed a commit
to BobbyRBruce/gem5
that referenced
this issue
Mar 26, 2024
) This commit adds support for vector unit-stride segment store operations for RISC-V (vssegXeXX). This implementation is based in two types of microops: - VsSegIntrlv microops that properly interleave source registers into structs. - VsSeg microops that store data in memory as contiguous structs of several fields. Change-Id: Id80dd4e781743a60eb76c18b6a28061f8e9f723d Gem5 issue: gem5#382
BobbyRBruce
pushed a commit
to BobbyRBruce/gem5
that referenced
this issue
Mar 26, 2024
) This commit adds support for vector unit-stride segment store operations for RISC-V (vssegXeXX). This implementation is based in two types of microops: - VsSegIntrlv microops that properly interleave source registers into structs. - VsSeg microops that store data in memory as contiguous structs of several fields. Change-Id: Id80dd4e781743a60eb76c18b6a28061f8e9f723d Gem5 issue: gem5#382
BobbyRBruce
pushed a commit
to BobbyRBruce/gem5
that referenced
this issue
Mar 30, 2024
) This commit adds support for vector unit-stride segment store operations for RISC-V (vssegXeXX). This implementation is based in two types of microops: - VsSegIntrlv microops that properly interleave source registers into structs. - VsSeg microops that store data in memory as contiguous structs of several fields. Change-Id: Id80dd4e781743a60eb76c18b6a28061f8e9f723d Gem5 issue: gem5#382
mjkpolo
pushed a commit
to mjkpolo/gem5
that referenced
this issue
Apr 15, 2024
This commit adds support for vector unit-stride segment load operations for RISC-V (vlseg<NF>e<X>). This implementation is based in two types of microops: - VlSeg microops that load data as it is organized in memory in structs of several fields. - VectorDeIntrlv microops that properly deinterleave structs into destination registers. Gem5 issue: gem5#382
mjkpolo
pushed a commit
to mjkpolo/gem5
that referenced
this issue
Apr 15, 2024
) This commit adds support for vector unit-stride segment store operations for RISC-V (vssegXeXX). This implementation is based in two types of microops: - VsSegIntrlv microops that properly interleave source registers into structs. - VsSeg microops that store data in memory as contiguous structs of several fields. Change-Id: Id80dd4e781743a60eb76c18b6a28061f8e9f723d Gem5 issue: gem5#382
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello,
I am opening this issue to ask if someone is working on the Vector Segmented Loads/Stores to the RISC-V Vector 1.0 implementation (e.g., vlseg, vsseg), which, if I am not wrong, are not supported by gem5 yet.
For the moment being, I am checking 1) how LD2, LD3 and LD4 Arm's instructions are implemented and 2) how vector register gather could help.
I will report the advances over here once I have significant progress.
Best,
Ivan
CC @adriaarmejach
The text was updated successfully, but these errors were encountered: