Jump to content

hardware prefetcher and adjacent line cache enabled or disabled ?

Hello,

i got new computer and in BIOS there are 2 interesting settings under CPU:

1. hardware prefetcher

2. adjacent line cache

 

I didn't find much, should i keep this enabled, or disable them ? Btw does intel forum work for you ? It is buged, it either redirects me in a loop, or when i click ask - send me to some weird link and it is blank page. I don't think i have anything in browser that would cause this, everything else works fine...

Link to comment
Share on other sites

Link to post
Share on other sites

Do some testing.

Run a cpu benchmark with it on and then again with it off.

What are the results? Please share!

Link to comment
Share on other sites

Link to post
Share on other sites

Depends on the CPU. For any modern CPU/mobo, leave them enabled. For old stuff (we're talking pre-pentium 4 here) then you may want to disable them. "New" could mean new to you, not "new" in an absolute sense.

 

Hardware prefetcher does exactly that. It tells the CPU that it is allowed to pre-fetch instructions and data that it thinks it needs. How that works is something that chapters in college textbooks are dedicated to.

 

Adjacent Line Cache is a different prefetch system that works by assuming that if you ask for 64 bytes of data, you actually want 128. That's an overly simple explanation of what it does. Whether that prefetching is helpful or not depends on how well the application is written/what it is designed to do. Generally speaking, an application which *doesn't* benefit from adjacent line caching is either badly written or doing something very particular (memory pattern match searching, for example)

Link to comment
Share on other sites

Link to post
Share on other sites

I had same results in cpu-z bench, did test as i read on techpower up someone was testing it and got better result with it off. I will do 3dmark tommorow yet. Otherwise i have 9600kf and asus z390 gaming-i. Probably should have mentioned that.

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, asquirrel said:

Depends on the CPU. For any modern CPU/mobo, leave them enabled. For old stuff (we're talking pre-pentium 4 here) then you may want to disable them. "New" could mean new to you, not "new" in an absolute sense.

 

Hardware prefetcher does exactly that. It tells the CPU that it is allowed to pre-fetch instructions and data that it thinks it needs. How that works is something that chapters in college textbooks are dedicated to.

 

Adjacent Line Cache is a different prefetch system that works by assuming that if you ask for 64 bytes of data, you actually want 128. That's an overly simple explanation of what it does. Whether that prefetching is helpful or not depends on how well the application is written/what it is designed to do. Generally speaking, an application which *doesn't* benefit from adjacent line caching is either badly written or doing something very particular (memory pattern match searching, for example)

I wonder if SuperPiMod would be a good benchmark to test with. Has 64k and 128k tests.

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, ShrimpBrime said:

I wonder if SuperPiMod would be a good benchmark to test with. Has 64k and 128k tests.

64 and 128 were *bytes*, not kb. The logic for adjacent line caching is basically "if this is program code, then I'll probably want the instruction after this one too" Or, say you were iterating through an array, it would try to fetch the next array element as well, just so that it is there waiting for you.

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, asquirrel said:

64 and 128 were *bytes*, not kb. The logic for adjacent line caching is basically "if this is program code, then I'll probably want the instruction after this one too" Or, say you were iterating through an array, it would try to fetch the next array element as well, just so that it is there waiting for you.

I see. Did look for some information yesterday. 

Here's a link I found.

Ill read this more later for sure, do some learning. 

 

I do know on older AMD stuff that turning cache on and or off can help with some benching, but not terrible familiar with Intel stuff like this.

 

Thank you.

 

https://software.intel.com/en-us/forums/intel-moderncode-for-parallel-architectures/topic/635075

Link to comment
Share on other sites

Link to post
Share on other sites

20 hours ago, ShrimpBrime said:

I wonder if SuperPiMod would be a good benchmark to test with. Has 64k and 128k tests.

I disabled both hardware prefetcher and adjacent cache line prefetch, because i am lazy test all 4 permutations. And i got worse runtime in superpi, like about minute. Second score didn't show, because there was first score already saved for that test and in 3d mark i got about 300 less score for cpu and even overall and i did 2 times tests to see margin of error and got only about 1 score different result. So i keep both on, thanks for ideas!

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 years later...

I disable hardware and adjacent line prefetch along with virtualization but if you must run virtualization disable core isolation now if you have a CPU that is far from being bottling by your GPU then I would just leave them on but when you have a GPU that is stronger than your CPU it can help free up resource and increase gaming performance in my case I have a GTX 1080 and a Xeon x5675 x58 platform and I leave them all disabled with a significant boost in frames per second

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×