File size: 832 Bytes
1d605f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <torch/library.h>

#include "registration.h"
#include "torch_binding.h"

TORCH_LIBRARY_EXPAND(TORCH_EXTENSION_NAME, ops) {
  ops.def("exact_gemm_maxp() -> int");
  ops.def("exact_gemm_lmax() -> int");
  ops.def("exact_gemm_mm(Tensor! Cout, Tensor A, Tensor B, Tensor primes_cpu, Tensor inv_cpu, Tensor mu_cpu, Tensor pow32_cpu) -> ()");
  ops.def("exact_gemm_mm_timed(Tensor! Cout, Tensor! times, Tensor A, Tensor B, Tensor primes_cpu, Tensor inv_cpu, Tensor mu_cpu, Tensor pow32_cpu) -> ()");

  ops.impl("exact_gemm_maxp", &exact_gemm_maxp);
  ops.impl("exact_gemm_lmax", &exact_gemm_lmax);
#if defined(CUDA_KERNEL) || defined(ROCM_KERNEL)
  ops.impl("exact_gemm_mm", torch::kCUDA, &exact_gemm_mm);
  ops.impl("exact_gemm_mm_timed", torch::kCUDA, &exact_gemm_mm_timed);
#endif
}

REGISTER_EXTENSION(TORCH_EXTENSION_NAME)