(no commit message)
authorlkcl <lkcl@web>
Wed, 6 Dec 2023 15:13:25 +0000 (15:13 +0000)
committerIkiWiki <ikiwiki.info>
Wed, 6 Dec 2023 15:13:25 +0000 (15:13 +0000)
openpower/sv/cookbook/pospopcnt.mdwn

index bfedde8800d5f6cfafe9fb80000cc0324ac0513c..516db6d2ca93b3f761a7cf60354dcfbf050ab29b 100644 (file)
@@ -69,11 +69,6 @@ bit-position, of an array of input values. Refer to Fig.2
      alt="pospopcnt" width="60%" />
 
 
-
-
-<br />
-
-
 # Visual representation of the pospopcount algorithm
 In order to perform positional popcount we need to go 
 through series of steps shown below in figures 3, 4, 5 & 6.
@@ -107,12 +102,17 @@ Fig.6 depicts how each of the intermediate results are
 accumulated. It is worth noting that each intermediate result 
 is independent of the other intermediate results and also
 parallel reduction can be applied to all of them
-individually. This gives two opportunities for parallelism.
+individually. This gives *two* opportunities for
+hardware parallelism rather than one.
 
 <img src="/openpower/sv/cookbook/ParallelAccumulate.drawio.svg"
      alt="pospopcnt" width="100%" />
 
-
+In short this algorithm is very straightforward to implement thanks to the two
+crucial instructions, `gbbd` and `popcntd`.  Below is a walkthrough of the
+assembler, keeping it very simple, and exploiting only one of the opportunities
+for parallelism (by not including the Parallel Reduction opportunity mentioned
+above).
 
 # Walkthrough of the assembler