#include #include #include #include "../include/quadrilinear4d_cuda.h" #include "../include/quadrilinear4d_kernel.h" int quadrilinear4d_forward_cuda(torch::Tensor lut, torch::Tensor image, torch::Tensor output, int lut_dim, int shift, float binsize, int width, int height, int batch) { const float* lut_flat = lut.data_ptr(); const float* image_flat = image.data_ptr(); float* output_flat = output.data_ptr(); QuadriLinearForwardLaucher(lut_flat, image_flat, output_flat, lut_dim, shift, binsize, width, height, batch, at::cuda::getCurrentCUDAStream()); return 1; } int quadrilinear4d_backward_cuda(torch::Tensor image, torch::Tensor image_grad, torch::Tensor lut, torch::Tensor lut_grad, int lut_dim, int shift, float binsize, int width, int height, int batch) { const float* image_flat = image.data_ptr(); float* image_grad_flat = image_grad.data_ptr(); const float* lut_flat = lut.data_ptr(); float* lut_grad_flat = lut_grad.data_ptr(); QuadriLinearBackwardLaucher(image_flat, image_grad_flat, lut_flat, lut_grad_flat, lut_dim, shift, binsize, width, height, batch, at::cuda::getCurrentCUDAStream()); return 1; }