This greatly reduces the number of allocators we create, while still
retaining thread safety. Reducing the number of allocators is much
better for locality and memory usage; this revision drops memory
usage for some MLIR heavy workloads (with lots of attributes/types)
by >=5%. This is due to the observation that the number of threads
is effectively always smaller than the number of parametric attributes/types.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Yeah, which is effectively always a guarantee (even on my beefy desktop) given the number of parametric builtin attributes/types we have.
mlir/lib/Support/StorageUniquer.cpp | ||
---|---|---|
176 | Can you get the shard after this if? |
mlir/lib/Support/StorageUniquer.cpp | ||
---|---|---|
176 | Nice catch, thanks! |
Can you get the shard after this if?