Skip to content

Commit

Permalink
Switching Stokhos changes to use native Kokkos macros
Browse files Browse the repository at this point in the history
  • Loading branch information
seanofthemillers committed Jan 29, 2024
1 parent d59873c commit d920462
Showing 1 changed file with 51 additions and 50 deletions.
101 changes: 51 additions & 50 deletions packages/stokhos/src/sacado/kokkos/pce/Sacado_UQ_PCE_Imp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,20 +392,21 @@ operator*=(const PCE<Storage>& x)
const ordinal_type sz = this->size();
const ordinal_type csz = sz > xsz ? sz : xsz;

#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))

KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
sz != xsz && sz != 1 && xsz != 1, std::logic_error,
"Sacado::UQ::PCE::operator*=(): input sizes do not match");
#endif
)

if (cijk_.is_empty() && !x.cijk_.is_empty())
cijk_ = x.cijk_;

#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
cijk_.is_empty() && csz != 1, std::logic_error,
"Sacado::UQ::PCE::operator*(): empty cijk but expansion size > 1");
#endif
)

if (csz > sz)
s_.resize(csz);
Expand Down Expand Up @@ -452,11 +453,11 @@ operator/=(const PCE<Storage>& x)
const ordinal_type sz = this->size();
const ordinal_type csz = sz > xsz ? sz : xsz;

#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
sz != xsz && sz != 1 && xsz != 1, std::logic_error,
"Sacado::UQ::PCE::operator/=(): input sizes do not match");
#endif
)

if (cijk_.is_empty() && !x.cijk_.is_empty())
cijk_ = x.cijk_;
Expand All @@ -467,13 +468,13 @@ operator/=(const PCE<Storage>& x)
const_pointer xc = x.coeff();
pointer cc = this->coeff();

#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__)
KOKKOS_IF_ON_DEVICE(
const value_type xcz = xc[0];
for (ordinal_type i=0; i<sz; ++i)
cc[i] /= xcz;
#endif
)

#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
if (xsz == 1) {//constant denom
const value_type xcz = xc[0];
for (ordinal_type i=0; i<sz; ++i)
Expand All @@ -485,7 +486,7 @@ operator/=(const PCE<Storage>& x)
CG_divide(*this, x, y);
s_ = y.s_;
}
#endif
)

return *this;

Expand Down Expand Up @@ -826,11 +827,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
exp(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::exp(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::exp( a.fastAccessCoeff(0) );
Expand All @@ -843,11 +844,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
log(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::log(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::log( a.fastAccessCoeff(0) );
Expand All @@ -860,11 +861,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
log10(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::log10(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::log10( a.fastAccessCoeff(0) );
Expand All @@ -877,11 +878,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
sqrt(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::sqrt(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::sqrt( a.fastAccessCoeff(0) );
Expand All @@ -894,11 +895,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
cbrt(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::cbrt(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::cbrt( a.fastAccessCoeff(0) );
Expand All @@ -911,11 +912,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
pow(const PCE<Storage>& a, const PCE<Storage>& b)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1 || b.size() != 1, std::logic_error,
"Sacado::UQ::PCE::pow(): arguments have size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::pow(a.fastAccessCoeff(0), b.fastAccessCoeff(0));
Expand All @@ -929,11 +930,11 @@ PCE<Storage>
pow(const typename PCE<Storage>::value_type& a,
const PCE<Storage>& b)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
b.size() != 1, std::logic_error,
"Sacado::UQ::PCE::pow(): arguments have size != 1");
#endif
)

PCE<Storage> c(b.cijk(), 1);
c.fastAccessCoeff(0) = std::pow(a, b.fastAccessCoeff(0));
Expand All @@ -947,11 +948,11 @@ PCE<Storage>
pow(const PCE<Storage>& a,
const typename PCE<Storage>::value_type& b)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::pow(): arguments have size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::pow(a.fastAccessCoeff(0), b);
Expand All @@ -964,11 +965,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
sin(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::sin(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::sin( a.fastAccessCoeff(0) );
Expand All @@ -981,11 +982,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
cos(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::cos(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::cos( a.fastAccessCoeff(0) );
Expand All @@ -998,11 +999,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
tan(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::tan(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::tan( a.fastAccessCoeff(0) );
Expand All @@ -1015,11 +1016,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
sinh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::sinh(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::sinh( a.fastAccessCoeff(0) );
Expand All @@ -1032,11 +1033,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
cosh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::cosh(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::cosh( a.fastAccessCoeff(0) );
Expand All @@ -1049,11 +1050,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
tanh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::tanh(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::tanh( a.fastAccessCoeff(0) );
Expand All @@ -1066,11 +1067,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
acos(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::acos(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::acos( a.fastAccessCoeff(0) );
Expand All @@ -1083,11 +1084,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
asin(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::asin(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::asin( a.fastAccessCoeff(0) );
Expand All @@ -1100,11 +1101,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
atan(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::atan(): argument has size != 1");
#endif
)

PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::atan( a.fastAccessCoeff(0) );
Expand All @@ -1118,11 +1119,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
acosh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::acosh(): argument has size != 1");
#endif
)
PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::acosh( a.fastAccessCoeff(0) );
Expand All @@ -1135,11 +1136,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
asinh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::asinh(): argument has size != 1");
#endif
)
PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::asinh( a.fastAccessCoeff(0) );
Expand All @@ -1152,11 +1153,11 @@ KOKKOS_INLINE_FUNCTION
PCE<Storage>
atanh(const PCE<Storage>& a)
{
#if !(defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__))
KOKKOS_IF_ON_HOST(
TEUCHOS_TEST_FOR_EXCEPTION(
a.size() != 1, std::logic_error,
"Sacado::UQ::PCE::atanh(): argument has size != 1");
#endif
)
PCE<Storage> c(a.cijk(), 1);
c.fastAccessCoeff(0) = std::atanh( a.fastAccessCoeff(0) );
Expand Down

0 comments on commit d920462

Please sign in to comment.