LibTorch 환경

Libtorch란

Libtorch는 Pytorch의 C++ API로 Visual Studio 환경에서 script를 실행하거나 네트워크 모델을 작성하여 실행 할 수 있다.
인터넷 검색을 libtorch로 해도 자료는 Pytorch 자료로 나오는 만큼 자료가 부족하다고 느낀다.

Libtorch 개발 환경

나는 Windows를 이용하고, Visual Studio 2022를 사용한다.
개인적으로 프로젝트 구성시 선호하는 폴더 트리 구성은 다음과 같다.

Folder 구조 Lib Copy1 Lib Copy2

필요 Library

  • Libtorch Cuda 버전
  • 위에서 내려받은 cuda 버전 다운로드 cuda 12.4
  • 위에서 내려받은 cuda 버전에 맞는 cudnn 다운로드 cudnn 8.9.7
  • cudnn을 cuda가 설치된 폴더에 복사.

Pytorch 사이트(https://pytorch.org/)에서 다음과 같이 C++ Cuda 버전을 다운로드한다.

Libtorch Down

Visual Studio 추가 포함 경로

  • $(SolutionDir)Include\
  • $(SolutionDir)Include\torch\csrc\api\include\

VS Include

Visual Studio 추가 라이브러리 경로

  • $(SolutionDir)Lib\
  • $(CUDA_PATH_V12_1)\lib\x64\
  • $(NVTOOLSEXT_PATH)lib\x64\

VS Lib

Visual Studio 추가 종속성

  • caffe2_nvrtc.lib
  • c10.lib
  • c10_cuda.lib
  • torch.lib
  • torch_cpu.lib
  • torch_cuda.lib
  • cublas.lib
  • cudart.lib
  • cudnn.lib
  • cufft.lib
  • curand.lib
  • -INCLUDE:?warp_size@cuda@at@@YAHXZ

VS Lib2

위 환경을 완료하고 아래 코드를 콘솔로 실행하면 Cuda 사용이 가능하다는 메시지를 확인할 수 있다.

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

int main()
{
	torch::Device device = torch::kCPU;
	std::cout << "CUDA DEVICE COUNT: " << torch::cuda::device_count() << std::endl;
	if (torch::cuda::is_available())
	{
		std::cout << "CUDA is available! Training on GPU." << std::endl;
		device = torch::kCUDA;
	}
}
  

VS Lib2