spla
Loading...
Searching...
No Matches
registry.hpp File Reference
#include <spla/config.hpp>
#include <spla/schedule.hpp>
#include <robin_hood.hpp>
#include <string>
Include dependency graph for registry.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  spla::RegistryAlgo
 Algorithm suitable to process schedule task based on task string key. More...
 
class  spla::Registry
 Registry with key-algo mapping of stored algo implementations. More...
 

Namespaces

namespace  spla
 

Macros

#define CPU_SUFFIX   "__cpu"
 
#define GPU_CL_SUFFIX   "__cl"
 
#define OP_KEY(op)
 
#define TYPE_KEY(type)
 
#define MAKE_KEY_0(name, type)
 
#define MAKE_KEY_1(name, op)
 
#define MAKE_KEY_2(name, op1, op2)
 
#define MAKE_KEY_3(name, op1, op2, op3)
 
#define MAKE_KEY_CPU_0(name, type)
 
#define MAKE_KEY_CPU_1(name, op)
 
#define MAKE_KEY_CPU_2(name, op1, op2)
 
#define MAKE_KEY_CPU_3(name, op1, op2, op3)
 
#define MAKE_KEY_CL_0(name, type)
 
#define MAKE_KEY_CL_1(name, op)
 
#define MAKE_KEY_CL_2(name, op1, op2)
 
#define MAKE_KEY_CL_3(name, op1, op2, op3)
 

Macro Definition Documentation

◆ CPU_SUFFIX

#define CPU_SUFFIX   "__cpu"

◆ GPU_CL_SUFFIX

#define GPU_CL_SUFFIX   "__cl"

◆ MAKE_KEY_0

#define MAKE_KEY_0 ( name,
type )
Value:
std::string(name) + TYPE_KEY(type)
#define TYPE_KEY(type)
Definition registry.hpp:43

◆ MAKE_KEY_1

#define MAKE_KEY_1 ( name,
op )
Value:
std::string(name) + OP_KEY(op)
#define OP_KEY(op)
Definition registry.hpp:42

◆ MAKE_KEY_2

#define MAKE_KEY_2 ( name,
op1,
op2 )
Value:
std::string(name) + OP_KEY(op1) + OP_KEY(op2)

◆ MAKE_KEY_3

#define MAKE_KEY_3 ( name,
op1,
op2,
op3 )
Value:
std::string(name) + OP_KEY(op1) + OP_KEY(op2) + OP_KEY(op3)

◆ MAKE_KEY_CL_0

#define MAKE_KEY_CL_0 ( name,
type )
Value:
#define MAKE_KEY_0(name, type)
Definition registry.hpp:44
#define GPU_CL_SUFFIX
Definition registry.hpp:41

◆ MAKE_KEY_CL_1

#define MAKE_KEY_CL_1 ( name,
op )
Value:
#define MAKE_KEY_1(name, op)
Definition registry.hpp:45

◆ MAKE_KEY_CL_2

#define MAKE_KEY_CL_2 ( name,
op1,
op2 )
Value:
MAKE_KEY_2(name, op1, op2) + GPU_CL_SUFFIX
#define MAKE_KEY_2(name, op1, op2)
Definition registry.hpp:46

◆ MAKE_KEY_CL_3

#define MAKE_KEY_CL_3 ( name,
op1,
op2,
op3 )
Value:
MAKE_KEY_3(name, op1, op2, op3) + GPU_CL_SUFFIX
#define MAKE_KEY_3(name, op1, op2, op3)
Definition registry.hpp:47

◆ MAKE_KEY_CPU_0

#define MAKE_KEY_CPU_0 ( name,
type )
Value:
MAKE_KEY_0(name, type) + CPU_SUFFIX
#define CPU_SUFFIX
Definition registry.hpp:40

◆ MAKE_KEY_CPU_1

#define MAKE_KEY_CPU_1 ( name,
op )
Value:

◆ MAKE_KEY_CPU_2

#define MAKE_KEY_CPU_2 ( name,
op1,
op2 )
Value:
MAKE_KEY_2(name, op1, op2) + CPU_SUFFIX

◆ MAKE_KEY_CPU_3

#define MAKE_KEY_CPU_3 ( name,
op1,
op2,
op3 )
Value:
MAKE_KEY_3(name, op1, op2, op3) + CPU_SUFFIX

◆ OP_KEY

#define OP_KEY ( op)
Value:
"_" + (op)->get_key()

◆ TYPE_KEY

#define TYPE_KEY ( type)
Value:
"_" + (type)->get_code()