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
Remote space support #1886
Remote space support #1886
Conversation
@@ -542,7 +552,7 @@ class View : public ViewTraits< DataType , Properties ... > { | |||
|
|||
private: | |||
|
|||
typedef Kokkos::Impl::ViewMapping< traits , void > map_type ; | |||
typedef Kokkos::Impl::ViewMapping< traits , typename traits::specialize > map_type ; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@crtrott I think this change will affect Sacado, the ViewMapping
there expects void
, but this change will result (in Sacado) in the second template parameter being some specialize tag (e.g. ViewSpecializeSacadoFad
etc). The change there seems like it should be easy, but we should check with Eric in case of overlooking something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, look at my new commit which fixes the internal aggregates test which mimics what Sacado does. It actually makes the code cleaner and I was able to delete parts of the specialization.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only potential issue I see is that Sacado currently has several partial specializations of ViewMapping<> for a given view specialization tag that are differentiated through enable_if<>, to support assignments between different view specializations (see, e.g., the ViewMapping<> specializations here.) This is to allow, e.g, View<double...> = View<Fad...> etc. Will that still work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@etphipp it may be as simple as replacing the final explicit void
template parameter in ViewMapping
typedefs with the appropriate specialization tag except for the case you mentioned above, e.g. leave as void
for the DstType
in this case:
line 1365 and in matching places for the other specialized ViewMapping
types.
Also making sure to change the default void return type of the enable_if
s used in the ViewMapping
specialization declarations to return the proper specialize tag.
|
@etphipp Eric please check this pull request since it will affect Sacado. But I believe it makes it actually ever so slightly clearer how to specialize these things. |
View: update various ctors
@crtrott I pushed some changes needed for @etphipp I attached patches for sacado and stokhos with fixes for this PR and also created a new kokkos-promotion branch in Trilinos to accumulate changes as the come (this PR will break Trilinos so changes will need to accumulate for the next promotion). Are you fine with the changes? I tested (sym-linking to this branch of kokkos) with a Cuda_Serial build on Waterman. There were no Sacado test failures and one Stokhos test failure that was failing with/without Kokkos changes during integration testing:
Specific subtest:
Here was my testing setup on waterman: Configuration:
Source the configuration script, build the code (on or off node), then allocate a node to run the
|
Changes to coordinate with kokkos/kokkos#1886. Various ViewMapping partial specializations now require the final template parameter to be the specialize tag, rather than explicit void. These changes ensure Sacado and Stokhos compatibility with the Kokkos changes. Test with Cuda_Serial build on waterman with cuda/9.2+gcc/7.2 Changes to be committed: modified: packages/sacado/src/KokkosExp_View_Fad.hpp modified: packages/sacado/src/KokkosExp_View_Fad_Contiguous.hpp modified: packages/sacado/src/Kokkos_DynRankView_Fad.hpp modified: packages/sacado/src/Kokkos_DynRankView_Fad_Contiguous.hpp modified: packages/sacado/test/UnitTests/Fad_KokkosTests_Cuda.cpp modified: packages/stokhos/src/sacado/kokkos/pce/KokkosExp_View_UQ_PCE_Contiguous.hpp modified: packages/stokhos/src/sacado/kokkos/vector/KokkosExp_View_MP_Vector_Contiguous.hpp
Just curious -- does this PR have anything to do with "remote space support"? It looks like it's all about View specialization. |
@crtrott kokkos-dev spot-check passes:
|
@mhoemmen I think the changes are needed for a separate branch or repo where Christian is working on the remote space support. |
I added a PR to trilinos that fixes the test failure, which is unrelated to this PR here. |
@crtrott This should be ready to merge, I created a new kokkos-promotion branch of Trilinos to track the sacado and stokhos fixes necessary to support this change. |
No description provided.