| 201 | } |
| 202 | |
| 203 | void NUMASetThreadNodeAffinity(int node) { |
| 204 | #ifdef TENSORFLOW_USE_NUMA |
| 205 | if (HaveHWLocTopology()) { |
| 206 | // Find the corresponding NUMA node topology object. |
| 207 | hwloc_obj_t obj = GetHWLocTypeIndex(HWLOC_OBJ_NUMANODE, node); |
| 208 | if (obj) { |
| 209 | hwloc_set_cpubind(hwloc_topology_handle, obj->cpuset, |
| 210 | HWLOC_CPUBIND_THREAD | HWLOC_CPUBIND_STRICT); |
| 211 | } else { |
| 212 | LOG(ERROR) << "Could not find hwloc NUMA node " << node; |
| 213 | } |
| 214 | } |
| 215 | #endif // TENSORFLOW_USE_NUMA |
| 216 | } |
| 217 | |
| 218 | int NUMAGetThreadNodeAffinity() { |
| 219 | int node_index = kNUMANoAffinity; |