QT中配置cuda环境,并编写cuda代码

2 篇文章 0 订阅

前言

之前是在vs中开发cuda的代码,现在需要把cuda的代码移植到QT中。

参考资料

本文参考:windows上使用QT creator运行cuda程序的pro配置

参考过的:

  1. CUDA编程(一):QT中编写cuda代码
  2. Qt msvc编译器 配置 cuda开发环境

1. 前言

由于本机安装cuda时,是默认安装的,所以安装目录为

# CUDA_PATH  这个是安装cuda时自动配置到环境变量中的路径,也是cuda安装的路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1

image-20221215162741644在这里插入图片描述

cuda的样例文件夹位置为

C:\ProgramData\NVIDIA Corporation\CUDA Samples
# CUDA_SDK   sdk包的位置
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1\common

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJOZ2iaI-1677747641372)(.images/09-CUDA-QT配置/image-20221215162907476.png)]

  • 由于在配置qt pro时,cuda的路径不能有空格,所以新建一个文件夹,把 上述两个图中的内容(CUDA_PATH和CUDA_SDK下的内容)都拷贝过去
# 新建的文件夹
F:\Software\CUDA\v11.1

2.Qt Creator的 .pro配置

在Windows上用qt写界面,需要用到cuda,windows上qt配置cuda花了很长时间,现在分享出来

windows上Qt Creator配置cuda与linux上大同小异

QT +=core
TEMPLATE = app
CONFIG += c++11
CONFIG -= app_bundle
TARGET = simulation
SOURCES += main.cpp
HEADERS += algorithm.h

INCLUDEPATH +=F:\Software\CUDA\v11.1\include  \
 F:\Software\CUDA\v11.1\common\inc #Qt Creator配置路径不能包含空格,因此我把安装好的cuda新建了个文件夹
LIBS +=-LF:/Software/CUDA/v11.1/lib/x64 \
-lcudart \
-lcublas \
-lcufft
OTHER_FILES +=./algorithm.cu #要运行的程序
# Cuda sources
CUDA_SOURCES+=./algorithm.cu
CUDA_SDK ="F:/Software/CUDA/v11.1"
CUDA_DIR ="F:/Software/CUDA/v11.1"
QMAKE_LIBDIR += $$CUDA_DIR/lib/x64
SYSTEM_TYPE = 64
#不同的显卡注意填适当的选项
CUDA_ARCH = sm_75
NVCCFLAGS     = --use_fast_math
CUDA_INC = $$join("F:/Software/CUDA/v11.1/include",'" -I"','-I"','"')

# MSVCRT link option (static or dynamic, it must be the same with your Qt SDK link option)
MSVCRT_LINK_FLAG_DEBUG = "/MDd" #表示使用DLL的调试版
MSVCRT_LINK_FLAG_RELEASE = "/MD" #使用DLL版的C和C++运行库 具体可以看vs的属性设置

CUDA_OBJECTS_DIR = ./
# 配置编译器
CONFIG(debug, debug|release) {
# Debug mode
cuda_d.input = CUDA_SOURCES
cuda_d.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}algorithm.obj #windows的中间文件是obj格式,这个是需要修改d
cuda_d.commands = $$CUDA_DIR/bin/nvcc.exe -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \
                 -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_DEBUG
cuda_d.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda_d
}
else {
# Release mode
 cuda.input = CUDA_SOURCES
 cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}algorithm.obj
 cuda.commands = $$CUDA_DIR/bin/nvcc.exe $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \
    -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_RELEASE
cuda.dependency_type = TYPE_C
 QMAKE_EXTRA_COMPILERS += cuda
}

3.示例代码

  • algorithm.h
#ifndef ALGORITHM_H
#define ALGORITHM_H
int  test_cuda(void);
#endif // ALGORITHM_H
  • algorithm.cu
#include <stdio.h>

// For the CUDA runtime routines (prefixed with "cuda_")
#include <cuda_runtime.h>


__global__ void
hello()
{
    int i = blockDim.x * blockIdx.x + threadIdx.x;

    printf("hello ");
}


/**
 * Host main routine
 */
int test_cuda(void)
{

    hello<<<1, 3>>>();

    cudaDeviceSynchronize();

    printf("Done\n");

    return 0;
}
  • main.cpp
#include <QCoreApplication>

#include "algorithm.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    test_cuda();
    return a.exec();
}

运行结果:

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
CLion 是一款由 JetBrains 公司开发的跨平台的集成开发环境(IDE),广泛应用于 C 和 C++ 的开发。在 CLion 配置 Qt 环境可以帮助我们更方便地进行 Qt 的应用程序开发。 首先,需要确保已经安装了 Qt。可以从官方网站下载 Qt 安装程序,并按照指示进行安装。安装完成后,记住 Qt 的安装路径。 打开 CLion,点击菜单栏的 "File",然后选择 "Settings"。 在弹出的 "Settings" 窗口,点击左侧面板的 "Build, Execution, Deployment",然后选择 "CMake"。 在右侧的 "CMake options" 输入框,输入以下内容: -DCMAKE_PREFIX_PATH=<Qt 安装路径>/5.x.x/<编译器>/lib/cmake/Qt5 其,"<Qt 安装路径>" 为你自己的 Qt 安装路径,"5.x.x" 是 Qt 的版本号,"<编译器>" 是你当前使用的编译器名称。 然后,点击 "Apply" 或 "OK" 保存修改。 接下来,对项目进行配置。 点击菜单栏的 "File",然后选择 "New Project"。 在弹出的对话框,选择 "C++ Executable"。 然后,按照向导的指示填写项目名称和保存路径,并点击 "Create" 创建项目。 在项目文件夹,创建一个名为 "CMakeLists.txt" 的文件,打开并编辑它。 在 "CMakeLists.txt" 文件,添加以下内容: ``` cmake_minimum_required(VERSION 3.0) project(MyQtProject) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) find_package(Qt5 REQUIRED COMPONENTS Core Widgets) add_executable(MyQtProject main.cpp) target_link_libraries(MyQtProject PRIVATE Qt5::Core Qt5::Widgets) ``` 保存并关闭文件。 然后,重新加载 CMake 项目。 点击 CLion 工具栏的 "Reload CMake Project" 图标。 至此,CLion 的 Qt 环境配置完成。 从现在开始,我们就可以在 CLion 编写和构建 Qt 的应用程序了。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值