Add nstream to Kokkos

This commit is contained in:
Tom Deakin 2021-02-02 15:58:00 +00:00
parent 4203ccb017
commit aefe5af18b
2 changed files with 16 additions and 0 deletions

View File

@ -119,6 +119,21 @@ void KokkosStream<T>::triad()
Kokkos::fence(); Kokkos::fence();
} }
template <class T>
void KokkosStream<T>::nstream()
{
Kokkos::View<T*> a(*d_a);
Kokkos::View<T*> b(*d_b);
Kokkos::View<T*> c(*d_c);
const T scalar = startScalar;
Kokkos::parallel_for(array_size, KOKKOS_LAMBDA (const long index)
{
a[index] += b[index] + scalar*c[index];
});
Kokkos::fence();
}
template <class T> template <class T>
T KokkosStream<T>::dot() T KokkosStream<T>::dot()
{ {

View File

@ -41,6 +41,7 @@ class KokkosStream : public Stream<T>
virtual void add() override; virtual void add() override;
virtual void mul() override; virtual void mul() override;
virtual void triad() override; virtual void triad() override;
virtual void nstream() override;
virtual T dot() override; virtual T dot() override;
virtual void init_arrays(T initA, T initB, T initC) override; virtual void init_arrays(T initA, T initB, T initC) override;