-
Notifications
You must be signed in to change notification settings - Fork 443
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
Rare bug in memory pool where allocation can finish on superblock in empty state #452
Labels
Bug
Broken / incorrect code; it could be Kokkos' responsibility, or others’ (e.g., Trilinos)
Milestone
Comments
gmackey
added
the
Bug
Broken / incorrect code; it could be Kokkos' responsibility, or others’ (e.g., Trilinos)
label
Sep 28, 2016
Requires significant redesign to catch corner-cases. |
Tonight there was a segmentation fault on openmp.task_fib on kokko-develop in addition to the always failing cuda.task_fib on Pascal. |
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 18, 2017
To be used in MemoryPool for TaskDAG maturing issue kokkos#320 . Designed to help address issue kokkos#452 .
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 18, 2017
race conditions by condensing state representation to a single integer and simplifying algorithm. Addresses issues kokkos#320 , kokkos#487 , kokkos#452 Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline implementation and align with MemoryPool needs. Unit testing over a range of superblocks the following sequence: 1) allocate N of varying size 2) deallocate N/3 of these 3) reallocation deallocated 4) concurrently deallocate and allocate N/3 of these
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 19, 2017
race conditions by condensing state representation to a single integer and simplifying algorithm. Addresses issues kokkos#320 , kokkos#487 , kokkos#452 Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline implementation and align with MemoryPool needs. Unit testing over a range of superblocks the following sequence: 1) allocate N of varying size 2) deallocate N/3 of these 3) reallocation deallocated 4) concurrently deallocate and allocate N/3 of these Add performance test for memory pool. Add performance enhancement note for multiple hints per block size.
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 19, 2017
race conditions by condensing state representation to a single integer and simplifying algorithm. Addresses issues kokkos#320 , kokkos#487 , kokkos#452 Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline implementation and align with MemoryPool needs. Unit testing over a range of superblocks the following sequence: 1) allocate N of varying size 2) deallocate N/3 of these 3) reallocation deallocated 4) concurrently deallocate and allocate N/3 of these Add performance test for memory pool. Add performance enhancement note for multiple hints per block size.
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 19, 2017
To be used in MemoryPool for TaskDAG maturing issue kokkos#320 . Designed to help address issue kokkos#452 .
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 19, 2017
race conditions by condensing state representation to a single integer and simplifying algorithm. Addresses issues kokkos#320 , kokkos#487 , kokkos#452 Using power-of-two Kokkos::Impl::concurrent_bitset size to streamline implementation and align with MemoryPool needs. Unit testing over a range of superblocks the following sequence: 1) allocate N of varying size 2) deallocate N/3 of these 3) reallocation deallocated 4) concurrently deallocate and allocate N/3 of these Add performance test for memory pool. Add performance enhancement note for multiple hints per block size.
hcedwar
added a commit
to hcedwar/kokkos
that referenced
this issue
Apr 19, 2017
race conditions by condensing state representation to a single integer and simplifying algorithm. Addresses issues kokkos#320 , kokkos#487 , kokkos#452 Creating power-of-two Kokkos::Impl::concurrent_bitset size to streamline implementation and align with MemoryPool needs. Unit testing over a range of superblocks the following sequence: 1) allocate N of varying size 2) deallocate N/3 of these 3) reallocation deallocated 4) concurrently deallocate and allocate N/3 of these Add performance test for memory pool. Add performance enhancement note for multiple hints per block size.
The redesigned memory pool explicitly eliminates this situation. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In the memory pool, it is possible for an allocation to finish on a superblock in the empty state. Allocations can only start on superblocks in the active state, but it is possible for the superblock to transition to full, then partially full, then empty before the allocation completes. This is extremely unlikely and hasn't been encountered yet, but the issue needs to be addressed.
The text was updated successfully, but these errors were encountered: