(no commit message)
authorlkcl <lkcl@web>
Thu, 20 Apr 2023 15:09:26 +0000 (16:09 +0100)
committerIkiWiki <ikiwiki.info>
Thu, 20 Apr 2023 15:09:26 +0000 (16:09 +0100)
openpower/sv/remap.mdwn

index 89fe28aa8f83392b1ee99912b8396aba594028dc..112e9474a80faa9e57ecb99938fa60aa022ac233 100644 (file)
@@ -198,6 +198,26 @@ of the Micro-Architecture the Hardware Engineer should first consider
 how best to process the exact same equivalent loop-unrolled instruction
 stream.*
 
+## Horizontal-Parallelism Hint
+
+`SVSTATE.hphint` is an indicator to hardware of how many elements are 100%
+fully independent.  Hardware is permitted to assume that groups of elements
+up to `hphint` in size need not have Register (or Memory) Hazards created
+between them (including when `hphint > VL`).
+
+If care is not taken in setting `hphint` correctly it may wreak havoc.
+For example Matrix Outer Product relies on the innermost loop computations
+being independent.  If `hphint` is set to greater than the Outer Product
+depth then data corruption is guaranteed to occur.
+
+Likewise on FFTs it is assumed that each layer of the RADIX2 triple-loop
+is independent, but that there is strict *inter-layer* Register Hazards.
+Therefore if `hphint` is set to greater than the RADIX2 width of the FFT,
+data corruption is guaranteed.
+
+Thus the key message is that setting `hphint` requires in-depth knowledge
+of the REMAP Algorithm Schedules, given in the Appendix.
+
 ## REMAP types
 
 This section summarises the motivation for each REMAP Schedule