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

Memory pool improvements #1383

Merged
merged 4 commits into from
Feb 17, 2022
Merged

Memory pool improvements #1383

merged 4 commits into from
Feb 17, 2022

Conversation

maleadt
Copy link
Member

@maleadt maleadt commented Feb 17, 2022

Fixes #1384

@maleadt maleadt changed the title Reuse at-retry_reclaim from alloc. Memory pool improvements Feb 17, 2022
@codecov
Copy link

codecov bot commented Feb 17, 2022

Codecov Report

Merging #1383 (ea43c67) into master (c38ae98) will increase coverage by 0.03%.
The diff coverage is 87.83%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1383      +/-   ##
==========================================
+ Coverage   77.96%   78.00%   +0.03%     
==========================================
  Files         121      121              
  Lines        8960     8946      -14     
==========================================
- Hits         6986     6978       -8     
+ Misses       1974     1968       -6     
Impacted Files Coverage Δ
lib/cudadrv/context.jl 73.27% <ø> (ø)
src/pool.jl 75.33% <82.60%> (+0.54%) ⬆️
src/array.jl 86.07% <90.90%> (ø)
lib/cudadrv/memory.jl 81.78% <100.00%> (+0.34%) ⬆️
lib/cudadrv/module/global.jl 82.60% <100.00%> (ø)
lib/cufft/fft.jl 87.87% <100.00%> (+0.04%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c38ae98...ea43c67. Read the comment docs.

@maleadt maleadt merged commit 2656e15 into master Feb 17, 2022
@maleadt maleadt deleted the tb/unify_retry_reclaim branch February 17, 2022 18:42
@maleadt maleadt mentioned this pull request Feb 17, 2022
maleadt added a commit that referenced this pull request Feb 17, 2022
maleadt added a commit that referenced this pull request Apr 5, 2022
For some reason, the thread-bound context can become desynchronized
from the task-local one. Generally we don't notice this, because we
prefix every API call with a call that synchronizes both. Here, however,
we explicitly didn't to avoid initializing the state as that was thought
to cause the kind of initialization that may have to yield (which is
unsupported when done so from a finalizer).

However, just creating the task local state shouldn't result in yield,
only creating a stream does, like querying `active_state` as was done
before #1383.
maleadt added a commit that referenced this pull request May 9, 2022
For some reason, the thread-bound context can become desynchronized
from the task-local one. Generally we don't notice this, because we
prefix every API call with a call that synchronizes both. Here, however,
we explicitly didn't to avoid initializing the state as that was thought
to cause the kind of initialization that may have to yield (which is
unsupported when done so from a finalizer).

However, just creating the task local state shouldn't result in yield,
only creating a stream does, like querying `active_state` as was done
before #1383.
maleadt added a commit that referenced this pull request May 9, 2022
…1462)

For some reason, the thread-bound context can become desynchronized
from the task-local one. Generally we don't notice this, because we
prefix every API call with a call that synchronizes both. Here, however,
we explicitly didn't to avoid initializing the state as that was thought
to cause the kind of initialization that may have to yield (which is
unsupported when done so from a finalizer).

However, just creating the task local state shouldn't result in yield,
only creating a stream does, like querying `active_state` as was done
before #1383.
simonbyrne pushed a commit to simonbyrne/CUDA.jl that referenced this pull request Nov 13, 2023
…uliaGPU#1462)

For some reason, the thread-bound context can become desynchronized
from the task-local one. Generally we don't notice this, because we
prefix every API call with a call that synchronizes both. Here, however,
we explicitly didn't to avoid initializing the state as that was thought
to cause the kind of initialization that may have to yield (which is
unsupported when done so from a finalizer).

However, just creating the task local state shouldn't result in yield,
only creating a stream does, like querying `active_state` as was done
before JuliaGPU#1383.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Pool free can switch tasks
1 participant