-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use Hugepages to back AllocationPool/HashStringAllocator (#5516)
Summary: Use Hugepages to back AllocationPool/HashStringAllocator Simplifies AllocationPool to consider a mix of small and large allocations. We present a single set of allocated ranges to the user, e.g. RowContainer or HashStringAllocator. We do not export memory::Allocations. Adaptively starts using huge pages in Allocationpool after passing a threshold size. We allocate large chunks, 32MB - 512MB and request huge pages for the range. We do not give these out as a unit however. Instead we increase the reservation one 2MB huge page at a time as and when these so far unbacked addresses are given out. The OS will at some point migrate the ranges to huge pages. This is seen to speed up hash tables by some 20% over just having the hash table arrays as huge pages. Adds a SIMD word wide tail to address ranges in HashStringAllocator. This means that any byte in content, also at end of allocations, is safe to access with full width. Changes the iterators in RowContainer to use the simplified AllocationPool range API. Pull Request resolved: #5516 Reviewed By: mbasmanova Differential Revision: D47220175 Pulled By: oerling fbshipit-source-id: a60127d46fed2960724ac65e780e7ea90937c6f1
- Loading branch information
1 parent
e846ebb
commit 9134514
Showing
25 changed files
with
777 additions
and
307 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.