diag.cpp 634 Bytes
Newer Older
rusty1s's avatar
rusty1s committed
1
#include <torch/script.h>
rusty1s's avatar
rusty1s committed
2

rusty1s's avatar
rusty1s committed
3
4
#define CHECK_CUDA(x)                                                          \
  AT_ASSERTM(x.device().is_cuda(), #x " must be CUDA tensor")
rusty1s's avatar
rusty1s committed
5

rusty1s's avatar
rusty1s committed
6
7
torch::Tensor non_diag_mask_cuda(torch::Tensor row, torch::Tensor col,
                                 int64_t M, int64_t N, int64_t k);
rusty1s's avatar
rusty1s committed
8

rusty1s's avatar
rusty1s committed
9
10
torch::Tensor non_diag_mask(torch::Tensor row, torch::Tensor col, int64_t M,
                            int64_t N, int64_t k) {
rusty1s's avatar
rusty1s committed
11
12
13
  CHECK_CUDA(row);
  CHECK_CUDA(col);
  return non_diag_mask_cuda(row, col, M, N, k);
rusty1s's avatar
rusty1s committed
14
15
}

rusty1s's avatar
rusty1s committed
16
17
static auto registry = torch::RegisterOperators(
    "torch_sparse_cuda::non_diag_mask", &non_diag_mask);