aboutsummaryrefslogtreecommitdiff
path: root/doc/h48.md
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-12-28 23:24:59 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2025-12-28 23:24:59 +0100
commit6c000c39dde57233df233c8e448dd189958ae013 (patch)
treecdc91ce52a83059b7f83ca1c714642f42c9b3aee /doc/h48.md
parent83270dcaeae598323b9cb2ae5a1a892ac5f72091 (diff)
downloadnissy-core-6c000c39dde57233df233c8e448dd189958ae013.tar.gz
nissy-core-6c000c39dde57233df233c8e448dd189958ae013.zip
Update doc
Diffstat (limited to 'doc/h48.md')
-rw-r--r--doc/h48.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/h48.md b/doc/h48.md
index 6015b2a..694a07d 100644
--- a/doc/h48.md
+++ b/doc/h48.md
@@ -315,6 +315,20 @@ inverse position*, then the coordinate on the normal position has not
315changed. Thus if we keep track of the last computed pruning value, 315changed. Thus if we keep track of the last computed pruning value,
316we can reuse it and avoid an expensive table lookup. 316we can reuse it and avoid an expensive table lookup.
317 317
318### Pruning pipeline and prefetching
319
320To improve the memory access pattern and exploit
321[prefetching](https://en.wikipedia.org/wiki/Cache_prefetching)
322opportunities, we don't expand each neighbor one by one in the
323pruning phase. Instead, we employ a *pruning pipeline*, where we
324first compute the cube and inverse position for each neighbor, and
325then we proceed through a series of stages, at each of which we
326compute some prune off some nodes and we pre-compute the data
327necessary for the next step.
328
329This pipeline-based strategy gives an speedup of around 25%.
330Adding manual prefetching, we get an additional 20% speedup.
331
318### Other optimizations 332### Other optimizations
319 333
320The H48 solver uses various other optimizations. 334The H48 solver uses various other optimizations.

Generated with cgit - Back to sebastiano.tronto.net