Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F86469226
cudpp_plan_manager.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Oct 6, 16:32
Size
1 KB
Mime Type
text/x-c++
Expires
Tue, Oct 8, 16:32 (2 d)
Engine
blob
Format
Raw Data
Handle
21415020
Attached To
rLAMMPS lammps
cudpp_plan_manager.h
View Options
// -------------------------------------------------------------
// cuDPP -- CUDA Data Parallel Primitives library
// -------------------------------------------------------------
// $Revision: 3572$
// $Date$
// -------------------------------------------------------------
// This source code is distributed under the terms of license.txt
// in the root directory of this source distribution.
// -------------------------------------------------------------
#ifndef __CUDPP_PLAN_MANAGER_H__
#define __CUDPP_PLAN_MANAGER_H__
#include <map>
class CUDPPPlan;
typedef void* KernelPointer;
/** @brief Singleton manager class for CUDPPPlan objects
*
* This class manages all active plans in CUDPP. It is a singleton class,
* meaning that only one instance can exist. It is created automatically the
* first time AddPlan() is called, and destroyed when the last plan is removed
* using RemovePlan().
*/
class CUDPPPlanManager
{
public:
static CUDPPHandle AddPlan(CUDPPPlan* plan);
static bool RemovePlan(CUDPPHandle handle);
static CUDPPPlan* GetPlan(CUDPPHandle handle);
static size_t numCTAs(KernelPointer kernel);
static void computeNumCTAs(KernelPointer kernel,
size_t bytesDynamicSharedMem,
size_t threadsPerBlock);
protected:
static CUDPPPlanManager* m_instance;
std::map<CUDPPHandle, CUDPPPlan*> plans;
std::map<void*, size_t> numCTAsTable;
private:
//! @internal Instantiate the plan manager singleton object
static void Instantiate();
//! @internal Destroy the plan manager singleton object
static void Destroy();
private:
CUDPPPlanManager() {}
CUDPPPlanManager(const CUDPPPlanManager&) {}
~CUDPPPlanManager();
};
#endif // __CUDPP_PLAN_MANAGER_H__
Event Timeline
Log In to Comment