Skip to content

Create a trace to test BP (not a bubble sort) #36

Open
pavelkryukov opened this issue Feb 2, 2017 · 7 comments
Open

Create a trace to test BP (not a bubble sort) #36

pavelkryukov opened this issue Feb 2, 2017 · 7 comments
Labels
5 Same as 4, but requires good understanding of CPU microarchitecture. S1 — Branch prediction To solve the issue, you need knowledge about branch prediction testing Improves testing coverage

Comments

@pavelkryukov
Copy link
Member

pavelkryukov commented Feb 2, 2017

Currently no testing for Branch Prediction is made. We have to add the trace with huge amount of random branches.

The candidate was a bubble sort, but unfortunately, it is has low sensitivity to branch prediction.

AMB: Trace is implemented and shows sensitivity to BP mode.

@pavelkryukov pavelkryukov added 1 Usually one-liner tasks, but may require some deep into infrastructure. testing Improves testing coverage labels Feb 2, 2017
@pavelkryukov pavelkryukov changed the title For mem_trans.h to test BP Fork mem_trans.h to test BP Feb 2, 2017
@pavelkryukov pavelkryukov added the S1 — ISA To solve the issue, you need knowledge about MIPS or RISC-V ISA label Feb 2, 2017
@pavelkryukov pavelkryukov changed the title Fork mem_trans.h to test BP Fork mem_trans.s to test BP Feb 14, 2017
@gkorepanov gkorepanov self-assigned this Apr 10, 2017
@gkorepanov
Copy link
Contributor

How do I check that the trace shows the sensitivity to BP size, if there is no BPU yet?

@gkorepanov gkorepanov changed the title Fork mem_trans.s to test BP Fork memtrace_based.s to test BP Apr 10, 2017
@gkorepanov
Copy link
Contributor

Could you please construe how the memtrace_based.s was created? Is there any generator?
And what do you mean by random branches? If they are truly random, the branch prediction won't work at all.

I'd be grateful for explanations.

@pavelkryukov
Copy link
Member Author

I think @igorsmir-ilab will help you on this,

Could you please construe how the memtrace_based.s was created? Is there any generator?

@igorsmir-ilab Do you remember? It was generated from mem_trace.txt.

And what do you mean by random branches? If they are truly random, the branch prediction won't work at all.

The goal is to make a kind of stress test: implement trace with many branches (so they won't fit to small BPU) and different behavior. I suppose such traces exist already, you can try to find them.

How do I check that the trace shows the sensitivity to BP size, if there is no BPU yet?

So you demonstrate it when BP is implemented.

@igorsmir-ilab
Copy link
Contributor

Yes, this trace was created from mem_trace.txt, which just contained different mem addresses used for cache simulation task. This trace divided into two parts, as I remember: initialization part with store instructions, and memory accesses themselves (lots of load instructions). Addresses values and their order in this trace should be similar to original mem_trace.txt
There was also a small trick to decrease the end size of memtrace_based.s: I've detected the long chains of sequential memory accesses and squashed them in a single loop, rather than simply put the whole list of loads/stores.

@igorsmir-ilab
Copy link
Contributor

I'm not sure memtrace_based.s is the best trace for BPU stress test base, since there are multiple unique loops without inner branches. Like @pavelkryukov said, you may look around and check, whether do we already have some nice tests for BPU or not. Nevertheless, building synthetic test with multiple branches should be quite easy, IMO.

@pavelkryukov pavelkryukov changed the title Fork memtrace_based.s to test BP Create a trace to test BP Apr 10, 2017
@pavelkryukov
Copy link
Member Author

Moved to the next year

@pavelkryukov pavelkryukov added 2 Small features, tests coverage, simple laboratory works and removed 1 Usually one-liner tasks, but may require some deep into infrastructure. labels May 7, 2017
@pavelkryukov
Copy link
Member Author

Kamino closed and cloned this issue to MIPT-ILab/mips-traces

@pavelkryukov pavelkryukov added duplicate and removed 2 Small features, tests coverage, simple laboratory works S1 — ISA To solve the issue, you need knowledge about MIPS or RISC-V ISA testing Improves testing coverage labels Oct 2, 2017
@pavelkryukov pavelkryukov added testing Improves testing coverage 3 Features of medium complexity or infrastructure enhancements S1 — ISA To solve the issue, you need knowledge about MIPS or RISC-V ISA and removed duplicate labels Sep 27, 2018
@pavelkryukov pavelkryukov reopened this Sep 27, 2018
@pavelkryukov pavelkryukov changed the title Create a trace to test BP Create a trace to test BP (not a bubble sort) Oct 3, 2018
@pavelkryukov pavelkryukov added 5 Same as 4, but requires good understanding of CPU microarchitecture. S1 — Branch prediction To solve the issue, you need knowledge about branch prediction and removed 3 Features of medium complexity or infrastructure enhancements S1 — ISA To solve the issue, you need knowledge about MIPS or RISC-V ISA labels Oct 3, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
5 Same as 4, but requires good understanding of CPU microarchitecture. S1 — Branch prediction To solve the issue, you need knowledge about branch prediction testing Improves testing coverage
Projects
None yet
Development

No branches or pull requests

3 participants