cmake配置cuda12.4+libtorch开发环境

cmake配置cuda12.4+libtorch开发环境

huiyi
2024-11-06 / 1 评论 / 743 阅读 / 正在检测是否收录...

前言

c++想要配置libtorch还是挺坑的,特别是我用的cuda12.4,各种环境整合起来极其复杂,配起来这环境我头发都薅掉了一把😅

准备工作

确认显卡环境支持

这篇文章建立在你的显卡支持cuda12.4环境的前提上,如果不支持,可以直接看踩坑点,或者直接叉掉.

22c45884c427e98424cf90922c7b54a0.png

下载安装 CUDA Toolkit

https://developer.nvidia.com/cuda-downloads

安装过程自定义,音频驱动取消,其他全勾就行

如果你没安装vs2019+版本,就不要勾选vs相关选项

安装完毕之后去查看你的环境变量

image.png

下载安装 cuDNN

https://developer.nvidia.com/cudnn-downloads

安装过程默认

下载安装 LibTorch

bd9fb8cfac57aee117705ad00693029b.png

我下载的是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

那你大概率只会得到如下的报错

8ecce799531f1318d3ec47125b0271f8.png

解决方案

下载cuda11.8

https://developer.nvidia.com/cuda-11-8-0-download-archive

安装时选择自定义安装

除了Nsight NVTX以外的勾全去了

f021d4f97d57e268ea8df10a1259927d.png

完成

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

int main() {
  torch::Tensor tensor = torch::rand({2, 3});
  std::cout << tensor << std::endl;
}

035f8f440d3618a5f4bc48a69a114e73.png

0

评论 (1)

取消
  1. 头像
    头顶尖尖
    Windows 10 · Google Chrome

    写代码,写代码,写代码,那么我问你

    回复