Closed AniLeo closed 3 years ago
Fair enough, that manual is older than the commit.
EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08
How is the manual older? The function is from 2017, the manual indicates being from March 2018.
Also why that hex string?
That makes sense, is it related to the core parking issue on early versions of Windows 7?
Do you happen to know which was the update that fixed it?
Thanks, closing as solved then
https://github.com/GPUOpen-LibrariesAndSDKs/cpu-core-counts/blob/7c2329aa7109c4d26f83d44f9a422524a63dac82/windows/ThreadCount-Win7.cpp#L76
Why is this check here? Physical and logical threads are always equal regardless of Bulldozer CPU. So you have FX-4000 series which is 4C/4T, FX-6000 series which is 6C/6T and FX-8000 series which is 8T/8T. The Bulldozer based Opteron CPUs also report the same amount of physical cores as logical ones.
The module based architecture where 2 cores are grouped on 1 module sharing one FPU (2 integer cores for 1 floating point unit) does not affect the reported physical or logical cores.
The output of this function would be exactly the same if you just remove this check, why was it even added in the first place?
https://gpuopen.com/wp-content/uploads/2018/05/gdc_2018_sponsored_optimizing_for_ryzen.pdf
Page 25 here even says "Bulldozer is not a SMT design"