#include "ATen/ATen.h" #include <cuda_fp16.h> template <typename T> T *data_ptr(torch::Tensor x) { return x.data_ptr<T>(); } template <> inline half *data_ptr(torch::Tensor x) { return reinterpret_cast<half *>(x.data_ptr<at::Half>()); }