一、环境搭建
-
完成LibTorch(CPU版)下载、安装及环境配置
-
编写,调用LibTorch接口,输出版本及CPU设备信息
二、分步实操步骤
步骤1:下载CPU版的LibTorch
-
参数选择:
OS:Windows
Package:LibTorch
Language:C++
Compute Platform:CPU
版本:2.1.0及以上,下载含「win-x64-cpu」的压缩包
- 解压尽量解压到无中文、无空格路径(例:F:/third_party_library/libtorch)
步骤2:环境变量配置(VS2026适配)
-
右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
-
系统变量新增:
变量名:LIBTORCH
变量值:LibTorch路径
- 编辑系统变量「Path」:
%LIBTORCH%\lib(LibTorch依赖库路径)
VS2026编译器路径
步骤3:CMakeLists.txt编写
核心需求:适配VS2026、禁用CUDA检测、解决路径转义、链接LibTorch库,完整可直接复制使用:
cmake_minimum_required(VERSION 3.28) # 升级到3.28+,适配VS2026
project(LLM_LibTorch)
set(CUDA_TOOLKIT_ROOT_DIR "" CACHE STRING "Disable CUDA" FORCE)
set(TORCH_USE_CUDA_DSA OFF CACHE BOOL "" FORCE)
set(TORCH_NO_CUDA ON CACHE BOOL "" FORCE) # 强制禁用CUDA
set(CMAKE_CUDA_COMPILER OFF CACHE BOOL "" FORCE)
# 适配VS2026的C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(MSVC)
add_compile_options(/W3 /WX- /wd4251 /wd4275 /wd4996)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
# 配置纯CPU版LibTorch路径
set(LIBTORCH_PATH "F:/third_party_library/libtorch" CACHE PATH "LibTorch CPU版路径")
set(CMAKE_PREFIX_PATH ${LIBTORCH_PATH})
# 查找LibTorch库
find_package(Torch REQUIRED)
message(STATUS "LibTorch路径: ${TORCH_INSTALL_PREFIX}")
message(STATUS "LibTorch是否含CUDA: ${TORCH_USE_CUDA}") # 输出应为OFF
add_executable(LLM_LibTorch LLM_LibTorch.cpp)
# 链接LibTorch库
target_link_libraries(LLM_LibTorch PRIVATE "${TORCH_LIBRARIES}")
# 配置头文件搜索路径
target_include_directories(LLM_LibTorch PRIVATE
${PROJECT_SOURCE_DIR}
${LIBTORCH_PATH}/include
${LIBTORCH_PATH}/include/torch/csrc/api/include
)
# VS2026专属:复制DLL到输出目录
if (MSVC)
file(GLOB TORCH_DLLS "${LIBTORCH_PATH}/lib/*.dll")
add_custom_command(TARGET LLM_LibTorch
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${TORCH_DLLS}
$<TARGET_FILE_DIR:LLM_LibTorch>
COMMENT "Copying LibTorch DLLs to output directory")
endif()
# 设置输出目录
set_target_properties(LLM_LibTorch PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
DEBUG_POSTFIX "_d"
)
步骤4:程序编写
创建LLM_LibTorch.cpp主要是输出LibTorch版本、CPU设备信息,验证库链接,确保环境无误:
#include "LLM_LibTorch.h"
#include <torch/torch.h>
#include <iostream>
// 实现utils.h的函数
torch::Tensor create_tensor(int rows, int cols) {
return torch::ones({ rows, cols }, torch::kCPU);
}
int main() {
std::cout << "LibTorch Version: " << TORCH_VERSION_MAJOR << "."
<< TORCH_VERSION_MINOR << "." << TORCH_VERSION_PATCH << std::endl;
auto tensor = create_tensor(3, 4);
std::cout << "Custom Tensor:\n" << tensor << std::endl;
return 0;
}
