(no commit message)
authorlkcl <lkcl@web>
Sat, 4 Jun 2022 14:41:53 +0000 (15:41 +0100)
committerIkiWiki <ikiwiki.info>
Sat, 4 Jun 2022 14:41:53 +0000 (15:41 +0100)
openpower/sv/remap.mdwn

index af60be92a15d9606d5629de851152f2d9a6a54a5..bf4ef79f97425a427e88f349b2b2ea57d5f6b090 100644 (file)
@@ -36,14 +36,23 @@ latency, so should realistically be used only where it is worthwhile.
 Commonly-used patterns such as Matrix Multiply, DCT and FFT have
 helper instruction options which make REMAP easier to use.
 
+There are three types of REMAP:
+
+* **Matrix**, also known as 2D and 3D reshaping
+* **FFT/DCT**, with full triple-loop in-place support: limited to
+  Power-2 RADIX
+* **Indexing**, for any general-purpose reordering. Currently
+  under development.
+
 # Principle
 
-* normal vector element read/write as operands would be sequential
+* normal vector element read/write of operands would be sequential
   (0 1 2 3 ....)
 * this is not appropriate for (e.g.) Matrix multiply which requires
   accessing elements in alternative sequences (0 3 6 1 4 7 ...)
 * normal Vector ISAs use either Indexed-MV or Indexed-LD/ST to "cope"
   with this.  both are expensive (copy large vectors, spill through memory)
+  and very few Packed SIMD ISAs cope with non-Power-2.
 * REMAP **redefines** the order of access according to set "Schedules".
 * The Schedules are not necessarily restricted to power-of-two boundaries
   making it unnecessary to have for example specialised 3x4 transpose