c++ 中检查 cuda 是否可用以及 cuda 版本

代码

main.cpp

#include <iostream>

#ifdef HAVE_CUDA
#include <cuda_runtime.h>
#include <cuda.h>
#endif

int main() {
    std::cout << "Checking CUDA availability..." << std::endl;

#ifdef HAVE_CUDA
    int deviceCount = 0;
    cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
    if (error_id != cudaSuccess) {
        std::cerr << "cudaGetDeviceCount returned " << static_cast<int>(error_id) << std::endl;
        std::cerr << "CUDA is not available." << std::endl;
        return 1;
    }

    if (deviceCount == 0) {
        std::cerr << "There is no device supporting CUDA." << std::endl;
    } else {
        std::cout << "CUDA is available. Version: " << CUDA_VERSION << std::endl;
    }
#else
    std::cerr << "CUDA is not available." << std::endl;
#endif

    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(cuda_check)

# Check for CUDA availability
find_package(CUDA)
if(CUDA_FOUND)
    add_definitions(-DHAVE_CUDA)
    include_directories(${CUDA_INCLUDE_DIRS})
    link_libraries(${CUDA_LIBRARIES})
endif()

add_executable(cuda_check main.cpp)

输出说明

编译运行代码后,示例输出如下

Checking CUDA availability...
CUDA is available. Version: 11080

其中 11080 表示 cuda-11.8 版本

参考资料

How to Get CUDA Toolkit Version at Compile Time Without nvcc?
https://stackoverflow.com/questions/37970880/how-to-get-cuda-toolkit-version-at-compile-time-without-nvcc

【GPU】linux 安装、卸载 nvidia 显卡驱动、cuda 的官方文档、推荐方式(runfile)
https://blog.csdn.net/weixin_43667077/article/details/134813826

Ubuntu中多版本CUDA切换:
https://blog.csdn.net/sinat_40245632/article/details/109330182

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值