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

eti-only and blas testing scopes with layout stride #313

Open
kyungjoo-kim opened this issue Oct 5, 2018 · 3 comments
Open

eti-only and blas testing scopes with layout stride #313

kyungjoo-kim opened this issue Oct 5, 2018 · 3 comments
Assignees
Labels

Comments

@kyungjoo-kim
Copy link
Contributor

Currently, eti-only is not really optional. It should be eti-only to compile KK within a reasonable time. With eti-only option, it instanciates layout left and right and there is no mechanism to instanciate layout stride in the Makefile.kokkos-kernels. This may not be a problem but it could be problematic.

  1. KK only provides eti-only interface. For example, if I want to use "dot" with layout stride views, I got the following undefined error
undefined reference to `                                                                                                                          
KokkosBlas::Impl::Dot<                                                                                                                            
   Kokkos::View<double, Kokkos::LayoutLeft, Kokkos::HostSpace, Kokkos::MemoryTraits<1u> >,                                                        
   Kokkos::View<double const*, Kokkos::LayoutStride, Kokkos::Device<Kokkos::OpenMP, Kokkos::HostSpace>, Kokkos::MemoryTraits<1u> >,               
   Kokkos::View<double const*, Kokkos::LayoutStride, Kokkos::Device<Kokkos::OpenMP, Kokkos::HostSpace>, Kokkos::MemoryTraits<1u> >,               
   1, 1, false, false>::dot 

This is a reasonable use case and blas function either use tpls or kokkos native implementation for this case.

  1. KK test suite only test eti-only interface. Test coverage is significantly reduced as we limit testing for eti data types and array layouts. When I remove eti-only, there are several test failures. e.g.,
[  FAILED  ] serial.abs_mv_float (372 ms)
[  FAILED  ] serial.team_abs_mv_float (276 ms)
[  FAILED  ] serial.team_mult_double_mv_int (693 ms)
[  FAILED  ] serial.mult_double_mv_int (754 ms)
[  FAILED  ] serial.reciprocal_float (69 ms)
etc..
  1. I am not very familiar with eti system but KK should be compiled with different types of view combinations and when eti is not available, it should be able to redirect the code path to generic implementations.
@ndellingwood
Copy link
Contributor

Labeled as bug, please relabel as enhancement if that is more appropriate.

@srajama1
Copy link
Contributor

I think this will be a revamp and require considerable work, let us not block Trilinos update with this.

@crtrott
Copy link
Member

crtrott commented Dec 4, 2018

Your number 3 is true: if you don't enable eti-only you can instantiate anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants