ExaTN
node_executor_exatensor.hpp
1 
11 #ifndef EXATN_RUNTIME_EXATENSOR_NODE_EXECUTOR_HPP_
12 #define EXATN_RUNTIME_EXATENSOR_NODE_EXECUTOR_HPP_
13 
14 #include "tensor_node_executor.hpp"
15 
16 #include "talshxx.hpp"
17 
18 namespace exatn {
19 namespace runtime {
20 
22 
23 public:
24 
25  ExatensorNodeExecutor() = default;
27  ExatensorNodeExecutor & operator=(const ExatensorNodeExecutor &) = delete;
28  ExatensorNodeExecutor(ExatensorNodeExecutor &&) noexcept = delete;
29  ExatensorNodeExecutor & operator=(ExatensorNodeExecutor &&) noexcept = delete;
30  virtual ~ExatensorNodeExecutor() = default;
31 
32  void initialize() override;
33 
35  TensorOpExecHandle * exec_handle) override;
37  TensorOpExecHandle * exec_handle) override;
39  TensorOpExecHandle * exec_handle) override;
41  TensorOpExecHandle * exec_handle) override;
43  TensorOpExecHandle * exec_handle) override;
44 
45  bool sync(TensorOpExecHandle op_handle,
46  int * error_code,
47  bool wait = false) override;
48 
49  std::shared_ptr<talsh::Tensor> getLocalTensor(const numerics::Tensor & tensor,
50  const std::vector<std::pair<DimOffset,DimExtent>> & slice_spec) override;
51 
52  const std::string name() const override {return "exatensor-node-executor";}
53  const std::string description() const override {return "ExaTENSOR tensor graph node executor";}
54  std::shared_ptr<TensorNodeExecutor> clone() override {return std::make_shared<ExatensorNodeExecutor>();}
55 
56 protected:
57  //`ExaTENSOR executor state
58 };
59 
60 } //namespace runtime
61 } //namespace exatn
62 
63 #endif //EXATN_RUNTIME_EXATENSOR_NODE_EXECUTOR_HPP_
exatn::numerics::Tensor
Definition: tensor.hpp:63
exatn::runtime::ExatensorNodeExecutor::getLocalTensor
std::shared_ptr< talsh::Tensor > getLocalTensor(const numerics::Tensor &tensor, const std::vector< std::pair< DimOffset, DimExtent >> &slice_spec) override
Definition: node_executor_exatensor.cpp:69
exatn::runtime::ExatensorNodeExecutor::sync
bool sync(TensorOpExecHandle op_handle, int *error_code, bool wait=false) override
Definition: node_executor_exatensor.cpp:59
exatn
Definition: DriverClient.hpp:10
exatn::numerics::TensorOpAdd
Definition: tensor_op_add.hpp:21
exatn::numerics::TensorOpDestroy
Definition: tensor_op_destroy.hpp:21
exatn::runtime::ExatensorNodeExecutor::initialize
void initialize() override
Definition: node_executor_exatensor.cpp:13
exatn::numerics::TensorOpTransform
Definition: tensor_op_transform.hpp:27
exatn::runtime::ExatensorNodeExecutor
Definition: node_executor_exatensor.hpp:21
exatn::numerics::TensorOpContract
Definition: tensor_op_contract.hpp:22
exatn::numerics::TensorOpCreate
Definition: tensor_op_create.hpp:21
exatn::runtime::TensorNodeExecutor
Definition: tensor_node_executor.hpp:36
exatn::runtime::ExatensorNodeExecutor::execute
int execute(numerics::TensorOpCreate &op, TensorOpExecHandle *exec_handle) override
Definition: node_executor_exatensor.cpp:19