Thank you a lot Will Feng! Both solutions work!!
Is it normal that running the forward method on the GPU consumes more time than using the CPU? I wrote a simplified version of my code and this still occurs:
#include <chrono>
#include <ctime>
#include <iostream>

#include <torch/cuda.h>
#include <torch/script.h>

bool use_cuda = true;

class Timer{
  private:
    std::chrono::system_clock::time_point t_start;

  public:
    void start(){
        t_start = std::chrono::system_clock::now();
    }

    void stop(std::string msg){
        std::chrono::system_clock::time_point end = std::chrono::system_clock::now();
        std::chrono::duration<double> elapsed_seconds = end - t_start;
        std::cout << msg << ": " << elapsed_seconds.count() << "s\n";
    }
};

int main(int argc, const char* argv[]) {
    if (argc != 2) {
        std::cerr << "usage: example-app <path-to-exported-script-module>\n";
        return -1;
    }

    // Deserialize model
    std::shared_ptr<torch::jit::script::Module> module = torch::jit::load(argv[1]);
    assert(module != nullptr);

    // Set CPU/GPU
    torch::DeviceType device_type = torch::kCPU;
    if(use_cuda) device_type = torch::kCUDA;
    module->to(device_type);

    // Create input
    auto options = torch::TensorOptions().dtype(torch::kFloat32).device(device_type);
    auto inp = torch::zeros({2, 3, 720, 1280}, options);
    std::vector<torch::jit::IValue> inputs;
    inputs.push_back(inp);

    // Run model
    Timer t;
    t.start();
    torch::Tensor output = module->forward(inputs).toTensor(); 
    t.stop("forward");
}

Time in CPU: ~3s
Time in GPU: ~7s!!!
I’m surely missing something, I am using a Nvidia GTX 1080 and the model can be evaluated under 0.1s in Python.
Again, thank you a lot for your help!!