Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve sampling allocator #205

Merged
merged 2 commits into from
Nov 13, 2022
Merged

Conversation

jrmadsen
Copy link
Collaborator

  • dynamic sampler is constructed with a shared pointer to an allocator instance
  • allocator handles multiple samplers
    • eliminates need for every per-thread dynamic sampler to start background allocator thread
    • reduces number of background threads
    • supports starting all background allocator threads during initialization
  • new advanced configuration variable OMNITRACE_SAMPLING_ALLOCATOR_SIZE
    • number of sampler instances handled by allocator
  • new advanced configuration variable OMNITRACE_NUM_THREADS_HINT
    • hint for number of threads created by app, when set appropriately, sampling will start all required allocator threads during initialization
  • timemory submodule was updated with various fixes for its own tests

- dynamic sampler is constructed with a shared pointer to an allocator instance
- dynamic allocator handles multiple sampler
  - eliminates need for every per-thread dynamic sampler to start background allocator thread
@jrmadsen jrmadsen added timemory Issue affects/involves timemory features/capabilities libomnitrace Involves omnitrace library sampling Statistical sampling via interrupts submodule Updates a git submodule labels Nov 13, 2022
@jrmadsen jrmadsen merged commit 2135f82 into ROCm:main Nov 13, 2022
@jrmadsen jrmadsen deleted the multi-sampler-allocator branch November 13, 2022 20:37
@jrmadsen jrmadsen added the configuration Changes/involves configuration options label Nov 13, 2022
jrmadsen added a commit to jrmadsen/omnitrace that referenced this pull request Feb 2, 2023
* Updated sampling

- dynamic sampler is constructed with a shared pointer to an allocator instance
- dynamic allocator handles multiple sampler
  - eliminates need for every per-thread dynamic sampler to start background allocator thread

* Fix usage of tim::popen
jrmadsen added a commit to jrmadsen/omnitrace that referenced this pull request Feb 2, 2023
* Updated sampling

- dynamic sampler is constructed with a shared pointer to an allocator instance
- dynamic allocator handles multiple sampler
  - eliminates need for every per-thread dynamic sampler to start background allocator thread

* Fix usage of tim::popen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
configuration Changes/involves configuration options libomnitrace Involves omnitrace library sampling Statistical sampling via interrupts submodule Updates a git submodule timemory Issue affects/involves timemory features/capabilities
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant