scatter.cpp 963 Bytes
Newer Older
rusty1s's avatar
rusty1s committed
1
#include <Python.h>
rusty1s's avatar
rusty1s committed
2
3
#include <torch/script.h>

rusty1s's avatar
rusty1s committed
4
5
// #include "cpu/scatter_cpu.h"
// #include "utils.h"
rusty1s's avatar
rusty1s committed
6

rusty1s's avatar
rusty1s committed
7
8
9
10
// #ifdef WITH_CUDA
// #include <cuda.h>
// #include "cuda/scatter_cuda.h"
// #endif
rusty1s's avatar
rusty1s committed
11

rusty1s's avatar
rusty1s committed
12
#ifdef _WIN32
rusty1s's avatar
update  
rusty1s committed
13
PyMODINIT_FUNC PyInit__scatter(void) { return NULL; }
rusty1s's avatar
rusty1s committed
14
15
#endif

rusty1s's avatar
rusty1s committed
16
17
18
19
std::tuple<torch::Tensor, torch::optional<torch::Tensor>>
scatter_fw(torch::Tensor src, torch::Tensor index, int64_t dim,
           torch::optional<torch::Tensor> optional_out,
           torch::optional<int64_t> dim_size, std::string reduce) {
rusty1s's avatar
rusty1s committed
20
21
22
23
24
25
26
27
28
29
  return std::make_tuple(src, optional_out);
  // if (src.device().is_cuda()) {
  // #ifdef WITH_CUDA
  //   return scatter_cuda(src, index, dim, optional_out, dim_size, reduce);
  // #else
  //   AT_ERROR("Not compiled with CUDA support");
  // #endif
  // } else {
  //   return scatter_cpu(src, index, dim, optional_out, dim_size, reduce);
  // }
rusty1s's avatar
rusty1s committed
30
31
}

rusty1s's avatar
rusty1s committed
32
33
static auto registry =
    torch::RegisterOperators().op("torch_scatter::scatter_fw", &scatter_fw);