Commit 8db26428 authored by Fenglei Tian's avatar Fenglei Tian

update gpu_emitter use template

parent ad58cb29
This diff is collapsed.
...@@ -24,12 +24,12 @@ ...@@ -24,12 +24,12 @@
#include "ngraph/runtime/gpu/gpu_external_function.hpp" #include "ngraph/runtime/gpu/gpu_external_function.hpp"
#include "ngraph/runtime/gpu/gpu_tensor_view_wrapper.hpp" #include "ngraph/runtime/gpu/gpu_tensor_view_wrapper.hpp"
#define EMITTER_DECL(E) \ #define EMITTER_DECL(op_name) \
E(codegen::CodeWriter& writer, \ emit<op_name>(GPU_ExternalFunction * external_function, \
const ngraph::Node* n, \ codegen::CodeWriter & writer, \
const std::vector<ngraph::runtime::gpu::GPU_TensorViewWrapper>& args, \ const ngraph::Node* node, \
const std::vector<ngraph::runtime::gpu::GPU_TensorViewWrapper>& out) const std::vector<GPU_TensorViewWrapper>& args, \
const std::vector<GPU_TensorViewWrapper>& out)
namespace ngraph namespace ngraph
{ {
namespace runtime namespace runtime
...@@ -39,59 +39,31 @@ namespace ngraph ...@@ -39,59 +39,31 @@ namespace ngraph
class GPU_Emitter class GPU_Emitter
{ {
public: public:
static void EMITTER_DECL(EmitNop); template <typename OP>
static void EMITTER_DECL(EmitAdd); static void emit(GPU_ExternalFunction* external_function,
static void EMITTER_DECL(EmitDot); codegen::CodeWriter& writer,
static void EMITTER_DECL(EmitMultiply); const ngraph::Node* node,
static void EMITTER_DECL(EmitGetOutputElement); const std::vector<GPU_TensorViewWrapper>& args,
static void EMITTER_DECL(EmitXLAGetTupleElement); const std::vector<GPU_TensorViewWrapper>& out)
static void EMITTER_DECL(EmitTuple); {
static void EMITTER_DECL(EmitAbs); throw std::runtime_error("Unimplemented op in GPU emitter");
static void EMITTER_DECL(EmitConcat); }
static void EMITTER_DECL(EmitDivide);
static void EMITTER_DECL(EmitEqual); static void nop(GPU_ExternalFunction* external_function,
static void EMITTER_DECL(EmitGreater); codegen::CodeWriter& writer,
static void EMITTER_DECL(EmitGreaterEq); const ngraph::Node* node,
static void EMITTER_DECL(EmitLess); const std::vector<GPU_TensorViewWrapper>& args,
static void EMITTER_DECL(EmitLessEq); const std::vector<GPU_TensorViewWrapper>& out)
static void EMITTER_DECL(EmitLog); {
static void EMITTER_DECL(EmitMaximum); }
static void EMITTER_DECL(EmitMinimum);
static void EMITTER_DECL(EmitNegative); private:
static void EMITTER_DECL(EmitNotEqual); static std::string emit_vector(const GPU_TensorViewWrapper&,
static void EMITTER_DECL(EmitSelect); const std::string& name = "");
static void EMITTER_DECL(EmitSubtract); static std::string emit_array1d(const GPU_TensorViewWrapper&,
static void EMITTER_DECL(EmitBroadcast); const std::string& name = "");
static void EMITTER_DECL(EmitConvert); static std::string emit_matrix(const GPU_TensorViewWrapper&,
static void EMITTER_DECL(EmitConstant); const std::string& name = "");
static void EMITTER_DECL(EmitReshape);
static void EMITTER_DECL(EmitFunctionCall);
static void EMITTER_DECL(EmitReduce);
static void EMITTER_DECL(EmitSign);
static void EMITTER_DECL(EmitSlice);
static void EMITTER_DECL(EmitSum);
static void EMITTER_DECL(EmitExp);
static void EMITTER_DECL(EmitSin);
static void EMITTER_DECL(EmitSinh);
static void EMITTER_DECL(EmitCos);
static void EMITTER_DECL(EmitCosh);
static void EMITTER_DECL(EmitTan);
static void EMITTER_DECL(EmitTanh);
static void EMITTER_DECL(EmitAsin);
static void EMITTER_DECL(EmitAcos);
static void EMITTER_DECL(EmitAtan);
static void EMITTER_DECL(EmitPower);
static void EMITTER_DECL(EmitReplaceSlice);
static void EMITTER_DECL(EmitOneHot);
static void EMITTER_DECL(EmitFloor);
static void EMITTER_DECL(EmitCeiling);
static void EMITTER_DECL(EmitSqrt);
static void EMITTER_DECL(EmitConvolution);
static void EMITTER_DECL(EmitNot);
static void EMITTER_DECL(EmitMaxPool);
static void EMITTER_DECL(EmitReverse);
static void EMITTER_DECL(EmitReduceWindow);
static void EMITTER_DECL(EmitSelectAndScatter);
}; };
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment