Loading src/TNL/Algorithms/AtomicOperations.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,12 @@ struct AtomicOperations{}; template<> struct AtomicOperations< Devices::Host > { // this is __cuda_callable__ only to silence nvcc warnings (all methods inside class // template specializations must have the same execution space specifier, otherwise // nvcc complains) TNL_NVCC_HD_WARNING_DISABLE template< typename Value > __cuda_callable__ static void add( Value& v, const Value& a ) { #pragma omp atomic update Loading src/TNL/Algorithms/MemoryOperations.h +6 −2 Original line number Diff line number Diff line Loading @@ -81,13 +81,17 @@ struct MemoryOperations< Devices::Sequential > template<> struct MemoryOperations< Devices::Host > { // this is __cuda_callable__ only to silence nvcc warnings TNL_NVCC_HD_WARNING_DISABLE template< typename Element > __cuda_callable__ // only to avoid nvcc warning __cuda_callable__ static void setElement( Element* data, const Element& value ); // this is __cuda_callable__ only to silence nvcc warnings TNL_NVCC_HD_WARNING_DISABLE template< typename Element > __cuda_callable__ // only to avoid nvcc warning __cuda_callable__ static Element getElement( const Element* data ); template< typename Element, typename Index > Loading src/TNL/Object.h +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ class Object * Since it is not defined as \ref __cuda_callable__, objects inherited * from Object should not be created in CUDA kernels. */ virtual ~Object(){}; virtual ~Object() = default; }; /** Loading Loading
src/TNL/Algorithms/AtomicOperations.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,12 @@ struct AtomicOperations{}; template<> struct AtomicOperations< Devices::Host > { // this is __cuda_callable__ only to silence nvcc warnings (all methods inside class // template specializations must have the same execution space specifier, otherwise // nvcc complains) TNL_NVCC_HD_WARNING_DISABLE template< typename Value > __cuda_callable__ static void add( Value& v, const Value& a ) { #pragma omp atomic update Loading
src/TNL/Algorithms/MemoryOperations.h +6 −2 Original line number Diff line number Diff line Loading @@ -81,13 +81,17 @@ struct MemoryOperations< Devices::Sequential > template<> struct MemoryOperations< Devices::Host > { // this is __cuda_callable__ only to silence nvcc warnings TNL_NVCC_HD_WARNING_DISABLE template< typename Element > __cuda_callable__ // only to avoid nvcc warning __cuda_callable__ static void setElement( Element* data, const Element& value ); // this is __cuda_callable__ only to silence nvcc warnings TNL_NVCC_HD_WARNING_DISABLE template< typename Element > __cuda_callable__ // only to avoid nvcc warning __cuda_callable__ static Element getElement( const Element* data ); template< typename Element, typename Index > Loading
src/TNL/Object.h +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ class Object * Since it is not defined as \ref __cuda_callable__, objects inherited * from Object should not be created in CUDA kernels. */ virtual ~Object(){}; virtual ~Object() = default; }; /** Loading