(no commit message)
authorlkcl <lkcl@web>
Fri, 19 May 2023 19:05:28 +0000 (20:05 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 19 May 2023 19:05:28 +0000 (20:05 +0100)
openpower/sv/remap.mdwn

index 2f111b48312dac06f6bf74a7e182055cf97cb9cc..44ea780e05abe6b76fa06f0e43c8cdbfbb2b2cf7 100644 (file)
@@ -96,27 +96,7 @@ Further details on the Deterministic Precise-Interruptible algorithms
 used in these Schedules is found in the [[sv/remap/appendix]].
 
 
-## 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.
-
-## Determining Register Hazards
+## Determining Register Hazards (hphint)
 
 For high-performance (Multi-Issue, Out-of-Order) systems it is critical
 to be able to statically determine the extent of Vectors in order to
@@ -154,6 +134,28 @@ the Write-Hazards for result registers the corresponding Write-Hazards for the
 corresponding associated co-result CR Field must not be forgotten, *including* when
 Predication is used.
 
+**Horizontal-Parallelism Hint**
+
+To help further in reducing Hazards,
+`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`, which greatly aids simplification of
+Multi-Issue implementations.
+
+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 area of SVSTATE SPR
 
 The following bits of the SVSTATE SPR are used for REMAP: