spla
Classes | Namespaces | Macros
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

 spla
 

Macros

#define CPU_SUFFIX   "__cpu"
 
#define GPU_CL_SUFFIX   "__cl"
 
#define OP_KEY(op)   "_" + (op)->get_key()
 
#define TYPE_KEY(type)   "_" + (type)->get_code()
 
#define MAKE_KEY_0(name, type)   std::string(name) + TYPE_KEY(type)
 
#define MAKE_KEY_1(name, op)   std::string(name) + OP_KEY(op)
 
#define MAKE_KEY_2(name, op1, op2)   std::string(name) + OP_KEY(op1) + OP_KEY(op2)
 
#define MAKE_KEY_3(name, op1, op2, op3)   std::string(name) + OP_KEY(op1) + OP_KEY(op2) + OP_KEY(op3)
 
#define MAKE_KEY_CPU_0(name, type)   MAKE_KEY_0(name, type) + CPU_SUFFIX
 
#define MAKE_KEY_CPU_1(name, op)   MAKE_KEY_1(name, op) + CPU_SUFFIX
 
#define MAKE_KEY_CPU_2(name, op1, op2)   MAKE_KEY_2(name, op1, op2) + CPU_SUFFIX
 
#define MAKE_KEY_CPU_3(name, op1, op2, op3)   MAKE_KEY_3(name, op1, op2, op3) + CPU_SUFFIX
 
#define MAKE_KEY_CL_0(name, type)   MAKE_KEY_0(name, type) + GPU_CL_SUFFIX
 
#define MAKE_KEY_CL_1(name, op)   MAKE_KEY_1(name, op) + GPU_CL_SUFFIX
 
#define MAKE_KEY_CL_2(name, op1, op2)   MAKE_KEY_2(name, op1, op2) + GPU_CL_SUFFIX
 
#define MAKE_KEY_CL_3(name, op1, op2, op3)   MAKE_KEY_3(name, op1, op2, op3) + GPU_CL_SUFFIX
 

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 
)    std::string(name) + TYPE_KEY(type)

◆ MAKE_KEY_1

#define MAKE_KEY_1 (   name,
  op 
)    std::string(name) + OP_KEY(op)

◆ MAKE_KEY_2

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

◆ MAKE_KEY_3

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

◆ MAKE_KEY_CL_0

#define MAKE_KEY_CL_0 (   name,
  type 
)    MAKE_KEY_0(name, type) + GPU_CL_SUFFIX

◆ MAKE_KEY_CL_1

#define MAKE_KEY_CL_1 (   name,
  op 
)    MAKE_KEY_1(name, op) + GPU_CL_SUFFIX

◆ MAKE_KEY_CL_2

#define MAKE_KEY_CL_2 (   name,
  op1,
  op2 
)    MAKE_KEY_2(name, op1, op2) + GPU_CL_SUFFIX

◆ MAKE_KEY_CL_3

#define MAKE_KEY_CL_3 (   name,
  op1,
  op2,
  op3 
)    MAKE_KEY_3(name, op1, op2, op3) + GPU_CL_SUFFIX

◆ MAKE_KEY_CPU_0

#define MAKE_KEY_CPU_0 (   name,
  type 
)    MAKE_KEY_0(name, type) + CPU_SUFFIX

◆ MAKE_KEY_CPU_1

#define MAKE_KEY_CPU_1 (   name,
  op 
)    MAKE_KEY_1(name, op) + CPU_SUFFIX

◆ MAKE_KEY_CPU_2

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

◆ MAKE_KEY_CPU_3

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

◆ OP_KEY

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

◆ TYPE_KEY

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