4 ms·
This is dangerous misinformation. I'm sorry, but if your "math-heavy" code performs better when oversubscribed, then it is a massively suboptimal implementatio
by jedbrown 14y ago
This is dangerous misinformation.
I'm sorry, but if your "math-heavy" code performs better when oversubscribed, then it is a massively suboptimal implementation. As a performance-oriented mathematical library developer, with colleagues at many of the major supercomputing centers and vendors, oversubscription is a hazard that we guard against on CPU architectures because it is always slower. Many supercomputing environments use a kernel that does not even support over-subscription.
Note that GPUs are different in the sense that over-decomposition is necessary to cover latency, but even there, you generally get better performance at lower occupancy due to better register reuse. SMT CPU systems, most notably, Blue Gene/Q, often require use of multiple hardware threads per core to cover instruction latency and keep the prefetcher busy (due to allocation of outstanding requests). This is not over-subscription because those are bonified hardware threads.
- alexchamberlain 14y agoCan I pick your brains??? What happens during a cache miss? Does the thread block?
- lallysingh 14y agoOther instructions in the same thread are executed (when they can be, e.g. all data's available). Or in another hyperthread on the same core.