Error when .cu file use libtorch

after I see the install tutorial of libtorch PyTorch cppdocs, I can use libtorch in cpp file. However, I meet an error when include<torch/torch.h> in .cu file.
Reference the step in PyTorch cppdocs. I write a demo like follow:

  1. CMakeLists.txt
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)

find_package(CUDA REQUIRED)
find_package(Torch REQUIRED)

target_link_libraries(torchcpp "${TORCH_LIBRARIES}")
# set_property(TARGET torchcpp PROPERTY CXX_STANDARD 11)
set_property(TARGET torchcpp PROPERTY CUDA_STANDARD 11)
  1. demo code is silly, however, i just want to test)
#include <torch/torch.h>
#include <iostream>

using namespace std;

int main() {
    at::Tensor tensor = torch::randn({5}).cuda();
    cout << tensor << endl;

And follow the instruction to make:

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=my_path_to_libtorch/libtorch ..

can compile without error.


there is an error:

xxx/libtorch/include/torch/csrc/jit/argument_spec.h(56): error: static assertion failed with "ArgumentInfo is to be a POD struct"

I hope get your help. thank you! :smile:

Addition: If I change the head file to

#include <ATen/ATen.h>
#include <ATen/cuda/CUDAContext.h>

#include <iostream>

using namespace std;
using namespace at;

int main() {
    auto tensor = at::randn({5}).cuda();
    cout << tensor << endl;

it can make correctly.

1 Like