diff options
Diffstat (limited to 'content/zettel/3c3h2.md')
-rw-r--r-- | content/zettel/3c3h2.md | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/content/zettel/3c3h2.md b/content/zettel/3c3h2.md new file mode 100644 index 0000000..e9605bc --- /dev/null +++ b/content/zettel/3c3h2.md @@ -0,0 +1,32 @@ ++++ +title = "Implementing hyperblock scheduling in CompCert-KVX" +author = "Yann Herklotz" +tags = [] +categories = [] +backlinks = ["3c3h1"] +forwardlinks = ["3c3h3"] +zettelid = "3c3h2" ++++ + +One way to compare hyperblock scheduling to superblock scheduling would +be to implement it in CompCert-KVX, and therefore show the difference +between the two types of scheduling directly. However, the main issue +with this comparison is that this requires quite a lot of work to do, +but might also not provide any useful comparison. + +Firstly, hyperblock scheduling is quite different to superblock +scheduling, and if the processor does not support predicated execution +natively, then it might be much more efficient to use superblock +scheduling to approximate a trace schedule. However, for high-level +synthesis, where we have full control over the hardware that is +generated, it might be better to use hyperblock scheduling because we +could have predicated expressions. + +Secondly, to even use hyperblock scheduling in an environment that does +not have predicated execution would mean that one would have to +implement reverse if-conversion. Naïve if-conversion would be easy to +implement, however, to not lose any of the performance that was gained +by using the scheduling, one would have to implement reverse +if-conversion based on some heuristics. This means that one would be +comparing the implementation of reverse if-conversion as well as the +implementation of the scheduling against superblock scheduling. |