is there a way to programmatically disable the hardware prefetcher on an AMD system like you can in an Intel system as discussed in this topic
Specifically for the AMD Opteron Barcelona or Istanbul architecture.
Hardware Prefetching. Many modern processors implement hardware prefetching. This means that the processor monitors the memory access pattern of the running program and tries to predict what data the program will access next and prefetches that data. There are few different variants of how this can be done.
All AMD Family 10h processors (including Barcelona and Istanbul) have two different hardware prefetchers.
The first is the traditional data cache prefetcher that recognizes contiguous streams of either ascending or descending cache line accesses. It can be disabled by setting bit 13 of MSRC001_1022 to "1".
The other hardware prefetcher is the "memory controller prefetcher". This is a somewhat more general prefetcher, but only operates within the memory controller (i.e., it does not send the prefetched data to a core -- it just enables the memory controller to return it more quickly when the core requests it).
The stuff above is documented in the BIOS and Kernel Developer's Guide for Family 10h processors: http://support.amd.com/us/Processor_TechDocs/31116.pdf
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With