-
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
Runtime rank wrapper for View #189
Comments
Should we test out the compiler inling/optimization etc? |
Would be good, but not necessary as this Kokkos feature will replace an already non-performing application specific feature. |
I just merged the pull request. I think there are a couple more corner cases to be worked on in addition to subviews, but the basic capability seems to be there and the implementation looks fundamentally sound. |
First issue I currently see as outstanding: creating degenerated Views. E.g. a 2D view with second dimension==0 would come out as a 1D view right now. We should fix that by having explicit constructors with different number of arguments. |
other option based upon related discussion at ISO/C++ meeting is to change the dimension argument types to ptrdiff_t = -1, then deduce rank by the first non-negative input. |
The dynamic rank view with subview functionality is now available in the kokkos develop branch. The DynRankView code is located in kokkos/containers/src/Kokkos_DynRankView.hpp A couple comments, including changes from Kokkos::View:
|
…189), and Trilinos Stokhos and Sacado libraries is simplified by having all variants of View constructors that accept a Layout. Add this option for the shared memory View constructor.
Fine tune |
Modifications to DynRankView and subdynrankview:
Relaxed assumption that number of arguments to a subdynrankview must equal
Added createLayout code for LayoutStride input case for construction of DynRankView
|
Merged into master again. Can this be closed now? |
Provide a thin wrapper over a rank eight View that supports a runtime rank between zero and eight. The member access operator overloads simply fill in the missing arguments to the underlying View operator with the literal value 0. It is assumed that compilers' optimization will eliminate the integer index operations with hard-coded zero values.
The text was updated successfully, but these errors were encountered: