본문 바로가기
실험결과 재현

THC/THC.h: No such file or directory

by rnjsgmldnjs 2024. 12. 19.

PyTorch 2.x 이후 버전에서는 THC(Torch CUDA)와 관련된 헤더 파일이 대규모 리팩토링으로 인해 더 이상 제공되지 않거나 이름이 변경됨

 

THC 헤더는 주로 PyTorch의 내부 구현에 사용되던 것으로, 최신 버전에서는 ATen과 c10으로 대체됨

 

그래서..  기존 THC에서 제공한 코드를 모두 수정해야함

 

#include <THC/THC.h>                             ==>         #include <ATen/ATen.h>

#include <THC/THCAtomics.cuh>           ==>         #include <ATen/cuda/Atomic.cuh>

#include <THC/THCDeviceUtils.cuh>     ==>         #include <ATen/cuda/DeviceUtils.cuh>

 

THCudaCheck(cudaGetLastError());       ==>        AT_CUDA_CHECK(cudaGetLastError());

THCCeilDiv(output_size, 512L)                ==>        (output_size + 512L - 1) / 512L   (형태만 기억하자) 

THCudaMalloc(&ptr, size)                         ==>        cudaMalloc(&ptr, size)

THCudaFree(&ptr, size)                             ==>        cudaFree(size)

THCState *state = at::globalContext().lazyInitCUDA(); 

==> at::cuda::CUDAStream state = at::cuda::getCurrentCUDAStream(); (#include <torch/torch.h> 추가)

 

생각보다 금방할 수 있음

320x100