By: Anon (no.delete@this.spam.com), August 2, 2022 11:46 am
Room: Moderated Discussions
NvaxPlus (spam.delete@this.spam.com) on August 2, 2022 8:45 am wrote:
> I'm curious if anyone here has any good resources (papers, or things of that sort) on empirical
> data about what works and what doesn't in an ISA. It seems to me that a lot of arguments about
> instruction set design rely on intuition and received wisdom. Sometimes that's helpful and sometimes
> it isn't. I've been doing a (admittedly, cursory) literature review on this subject and was
> surprised just how seemingly little publicly available information there is.
If you have read discussion here you should've noted how subjective this subject is.
> When I say "empirical data" I mean specifically things like, how large immediates you
> actually need, what kind branching ops actually get used (i.e. do we need the full
> gamut of integer comparisons, or are equals/does not equal zero enough?), &c.
Getting quality data is much harder than you think, unlike you I have seen a lot of empirical data, often contradictory data, the problem is that the data depends on compiler technology, the existing ISAs, the workload, etc, improve one side and the other becomes suboptimal.
> The question re: immediate size is especially interesting to me. The only real data I could find on
> this is from H&P and as far as I could see they don't really delve into their methodology. What they
> do show suggests that the log2 of immediates is bimodal which kind of intuitively makes sense to me.
I think I have read the paper you are talking about, they are rigth, but depends, programs use arbitrary constants, what may be true on average may not be true for one particular program.
> I'm curious if anyone here has any good resources (papers, or things of that sort) on empirical
> data about what works and what doesn't in an ISA. It seems to me that a lot of arguments about
> instruction set design rely on intuition and received wisdom. Sometimes that's helpful and sometimes
> it isn't. I've been doing a (admittedly, cursory) literature review on this subject and was
> surprised just how seemingly little publicly available information there is.
If you have read discussion here you should've noted how subjective this subject is.
> When I say "empirical data" I mean specifically things like, how large immediates you
> actually need, what kind branching ops actually get used (i.e. do we need the full
> gamut of integer comparisons, or are equals/does not equal zero enough?), &c.
Getting quality data is much harder than you think, unlike you I have seen a lot of empirical data, often contradictory data, the problem is that the data depends on compiler technology, the existing ISAs, the workload, etc, improve one side and the other becomes suboptimal.
> The question re: immediate size is especially interesting to me. The only real data I could find on
> this is from H&P and as far as I could see they don't really delve into their methodology. What they
> do show suggests that the log2 of immediates is bimodal which kind of intuitively makes sense to me.
I think I have read the paper you are talking about, they are rigth, but depends, programs use arbitrary constants, what may be true on average may not be true for one particular program.