Skip to content

Instantly share code, notes, and snippets.

@xushijie
Created December 29, 2013 15:51
Show Gist options
  • Save xushijie/8171714 to your computer and use it in GitHub Desktop.
Save xushijie/8171714 to your computer and use it in GitHub Desktop.
Why Nothing Matters: The Impact of Zeroing
Why Nothing Matters: The Impact of Zeroing -OOPSLA’11
@xushijie
Copy link
Author

(1) bulk zeroing with cache-bypassing (non-temporal) instructions to reduce the direct and indirect zeroing costs simultaneously, (2) concurrent non-temporal bulk zeroing that exploits parallel hardware to move work off the application’s critical path, and (3) adaptive zeroing, which dynamically chooses between (1) and (2) based on available hardware parallelism.
http://www.cs.utexas.edu/~jbsartor/OOPSLA2011Zero-submit.pdf

Bulk zeroing attacks the direct cost by zeroing memory in large chunks and exploiting instruction level parallelism, loop optimizations, and zeroing a cache line or more at a time. Bulk zeroing, however, introduces a significant reuse distance between when the VM zeroes a
This distance increases cache pollution. Hot-path zeroing injects zeroing instructions into the allocation sequence, attacking indirect costs by minimizing reuse distance and exploiting the hardware prefetcher to avoid stalls in modern fetch-on-write caches. Hot-path zeroing, however, expands and complicates the performance-critical allocation sequence and reduces opportunities for software optimization of the zeroing instructions. The two designs are thus at poles, addressing either, but not both, of the direct and indirect costs of zeroing

@xushijie
Copy link
Author

Interesting...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment