etaler / Etaler

A flexable HTM (Hierarchical Temporal Memory) framework with full GPU support.
BSD 3-Clause "New" or "Revised" License
89 stars 14 forks source link

NUMA aware CPUBackend #14

Open marty1885 opened 5 years ago

marty1885 commented 5 years ago

Currently CPUBackend is not NUMA aware, so Etaler might run slower on a NUMA system (Multi-socket servers/ AMD 1st gen EPYC/ AMD ThreadRipper). Binding threads on NUMA nodes. allocating memory on NUMA local memory and running separate backends on NUMA nodes should allow Etaler to run fast on NUMA systems.

Yet since TBB is not NUMA aware. So we might need to drop TBB to support NUMA.

marty1885 commented 5 years ago

We might want to implement a thread pool w/ std::thread and pin threads to numa nodes using boost::numa. Seems to be the most portable solution.