You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LibTorch无法检测CUDA但CUDA Runtime正常的技术求助

LibTorch无法检测CUDA但CUDA Runtime与Python PyTorch正常工作的问题

环境信息

  • 系统:Windows 11
  • 编译器:MSVC 2022
  • LibTorch版本:libtorch-win-shared-with-deps-2.4.0+cu124(Debug/Release版本均尝试)
  • CUDA版本:nvcc V12.6.20(CUDA Toolkit 12.6)
  • Python PyTorch状态:可正常识别并使用CUDA

测试代码

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

int main() {
    std::cout << "CUDA device count: " << torch::cuda::device_count() << std::endl;
    std::cout << "CUDA is available: " << (torch::cuda::is_available() ? "Yes" : "No") << std::endl;
    std::cout << "cuDNN is available: " << (torch::cuda::cudnn_is_available() ? "Yes" : "No") << std::endl;
    int deviceCount;
    cudaGetDeviceCount(&deviceCount);
    std::cout << "Number of CUDA devices: " << deviceCount << std::endl;
    return 0;
}

运行输出

CUDA device count: 0
CUDA is available: No
cuDNN is available: No
Number of CUDA devices: 1

解决方案

1. 匹配LibTorch与CUDA版本兼容性

你当前使用的LibTorch基于CUDA 12.4编译,但本地安装的是CUDA Toolkit 12.6,版本不匹配会导致LibTorch无法正确加载CUDA组件。解决方式:

  • 下载对应CUDA 12.6版本的LibTorch包(官方包会明确标注适配的CUDA版本,如libtorch-win-shared-with-deps-2.4.0+cu126.zip);
  • 或降级本地CUDA Toolkit到12.4版本,确保与LibTorch编译版本一致。

2. 修正环境变量配置

  • 将LibTorch的lib目录(如D:\libtorch\lib)添加到系统PATH环境变量,且优先级高于CUDA Toolkit的bin目录(如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin),避免系统加载错误的CUDA依赖库;
  • 重启终端和MSVC IDE,确保环境变量修改生效。

3. 检查编译配置

使用CMake构建项目时,确保以下配置正确:

  • 指定正确的LibTorch路径,通过CMAKE_PREFIX_PATH或find_package(Torch REQUIRED)自动查找;
  • 明确设置CMAKE_CUDA_COMPILER为对应版本的nvcc路径,示例CMakeLists.txt:
    cmake_minimum_required(VERSION 3.18)
    project(LibTorchCUDA)
    
    set(CMAKE_PREFIX_PATH "D:/libtorch")
    find_package(Torch REQUIRED)
    set(CMAKE_CUDA_COMPILER "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.6/bin/nvcc.exe")
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
    add_executable(LibTorchCUDA main.cpp)
    target_link_libraries(LibTorchCUDA "${TORCH_LIBRARIES}")
    set_property(TARGET LibTorchCUDA PROPERTY CXX_STANDARD 17)
    
  • 保持编译模式与LibTorch版本一致:Debug版LibTorch对应Debug编译配置,Release版对应Release配置,禁止混合使用。

4. 验证LibTorch库完整性

重新下载LibTorch压缩包,解压后检查lib目录下是否存在torch_cuda.dll、cudnn64_8.dll等CUDA相关动态库,若缺失则说明包损坏,需重新下载。

5. 更新GPU驱动

确保NVIDIA显卡驱动版本满足CUDA Toolkit要求:CUDA 12.6需要驱动版本≥551.61,前往NVIDIA官网下载并安装最新适配驱动。

内容的提问来源于stack exchange,提问作者yegor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:27:34