Use all CPU sockets when pinning threads to cores

PiperOrigin-RevId: 654800375
This commit is contained in:
The gemma.cpp Authors 2024-07-22 10:08:31 -07:00 committed by Copybara-Service
parent 85cac13fb1
commit 74a6dc8f33
1 changed files with 4 additions and 3 deletions

View File

@ -83,9 +83,10 @@ static inline std::vector<size_t> AssignCpusFromTopology(
// This would result in the least amount of sharing of the last-level
// cache slices. All assignments are made from Package 0.
std::vector<std::vector<size_t>> clusters;
clusters.reserve(topology.packages[0].clusters.size());
for (auto& cluster : topology.packages[0].clusters) {
clusters.push_back(LpsToCpus(cluster.lps));
for (auto& package : topology.packages) {
for (auto& cluster : package.clusters) {
clusters.push_back(LpsToCpus(cluster.lps));
}
}
std::vector<size_t> assigned_cpus;
assigned_cpus.reserve(num_workers);