前言
c++想要配置libtorch还是挺坑的,特别是我用的cuda12.4,各种环境整合起来极其复杂,配起来这环境我头发都薅掉了一把😅
准备工作
确认显卡环境支持
这篇文章建立在你的显卡支持cuda12.4环境的前提上,如果不支持,可以直接看踩坑点,或者直接叉掉.
下载安装 CUDA Toolkit
https://developer.nvidia.com/cuda-downloads
安装过程自定义,音频驱动取消,其他全勾就行
如果你没安装vs2019+版本,就不要勾选vs相关选项
安装完毕之后去查看你的环境变量
下载安装 cuDNN
https://developer.nvidia.com/cudnn-downloads
安装过程默认
下载安装 LibTorch
我下载的是debug版本,release版本可以需要发布时再安装,使用cmake切换
运行代码/踩坑
新建一个项目文件夹,创建CMakeLIsts.txt
cmake_minimum_required(VERSION 3.29)
project(torch_test)
set(CMAKE_CXX_STANDARD 20)
# 你的libtorch目录
set(CMAKE_PREFIX_PATH "F:/Engcode/c_c++/modules/libtorchd" ${CMAKE_PREFIX_PATH})
# 换成你的cuda目录
link_directories("C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib64")
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
add_executable(torch_test main.cpp)
target_link_libraries(torch_test "${TORCH_LIBRARIES}")
if (MSVC)
file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")
add_custom_command(TARGET torch_test
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${TORCH_DLLS}
$<TARGET_FILE_DIR:torch_test>)
endif (MSVC)
踩坑
这个时候你如果只看libtorch的官方文档
https://pytorch.org/cppdocs/installing.html
那你大概率只会得到如下的报错
解决方案
下载cuda11.8
https://developer.nvidia.com/cuda-11-8-0-download-archive
安装时选择自定义安装
除了Nsight NVTX
以外的勾全去了
完成
#include <torch/torch.h>
#include <iostream>
int main() {
torch::Tensor tensor = torch::rand({2, 3});
std::cout << tensor << std::endl;
}
写代码,写代码,写代码,那么我问你