-
Notifications
You must be signed in to change notification settings - Fork 407
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
Kokkos::deep_copy memory access failures #1583
Comments
Oh my ... |
I think we should add the performance testing framework developed by Michel so Kokkoskernels can stress test Kokkos develop once a week or so. This showed up because we were trying to reproduce an earlier run w/ large matrices. Such a test would have caught other performance problems too. |
I am also at somewhat of a loss what is going wrong. I tracked this down to this addition typedef ViewFillA<Kokkos::View<int*, Kokkos::LayoutRight,
Kokkos::Device<Kokkos::Cuda, Kokkos::CudaSpace>,
Kokkos::MemoryTraits<1u> >,
Kokkos::LayoutLeft, Kokkos::Cuda, 1, int> FillFunctorType;
FillFunctorType f(very_big_view,4);
typedef Kokkos::RangePolicy<Kokkos::Cuda,Kokkos::IndexType<int>> policy_type;
Kokkos::parallel_for("Copy2",policy_type(0,very_big_view.extent(0)), f); This fails. But if I use int64_t as IndexType than it works. |
So this was somewhat bad luck. The code works if you use a length larger than |
What is special about 1B-2B ? |
Maybe there is somewhere a |
Got it ! I was thinking of a * 2 as well but cannot see why that is needed for deep copy. Something weird. |
AH I think I know whats going on. Its based on how the internal loop structure in the CUDA impl works. Basically it does a loop with i + stride < end . |
This tests exercises loops of length 1B<N<2B to expose issue #1583
Fix some 32/64 bit index issues mainly for CUDA (issue #1583)
PR #1588 merged, marking this as InDevelop. |
This is caught for some of the SpGEMM tests described here: https://github.com/kokkos/kokkos-kernels/wiki/SpGEMM_Benchmarks. (For example coPaperDBLP).
Something for Kokkos::deep_copy between Kokkos versions 2.5 and 2.6 seems to introduce illegal memory accesses. This made some of the spgemm tests fail with some memory access issues.
I can replicate this issue in the below small test code on P100 with cuda 8.0 and gcc 5.3.
The output is as below:
@srajama1 @crtrott @ibaned @dsunder @ndellingwood
The text was updated successfully, but these errors were encountered: