Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_ThrustGPUNode.hpp
00001 #ifndef KOKKOS_THRUSTGPUNODE_HPP_
00002 #define KOKKOS_THRUSTGPUNODE_HPP_
00003 
00004 #include "Kokkos_NodeAPIConfigDefs.hpp"
00005 #include "Kokkos_CUDANodeMemoryModel.hpp"
00006 
00007 namespace Kokkos {
00008 
00013 class ThrustGPUNode : public CUDANodeMemoryModel {
00014   public:
00015 
00025     ThrustGPUNode(Teuchos::ParameterList &pl);
00026 
00028     ~ThrustGPUNode();
00029 
00031 
00033     template <class WDP>
00034     static void parallel_for(int begin, int end, WDP wdp);
00035 
00037     template <class WDP>
00038     static typename WDP::ReductionType
00039     parallel_reduce(int begin, int end, WDP wd);
00040 
00042     void sync() const;
00043 
00045 
00046   private:
00047     int totalMem_;
00048 };
00049 
00050 } // namespace Kokkos
00051 
00052 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends