CUDA学习(二):Cmake编译Hello cuda!


博主CUDA学习系列汇总传送门(持续更新):编程语言|CUDA入门



ubuntu下写Cu代码,那首选IDEL当然是CLion了。
Clion编译Cuda需要配置CMakeLists.txt文件


一、配置CMakeLists.txt

0、用CLion新建立一个工程 CUDA Executable,或者直接建立一个普通的C++ Executable将主函数main.cpp变成了main.cu。
在这里插入图片描述
然后配置CMakeList.txt文件
1、FIND_PACKAGE找到已经安装的CUDA
2、使用CUDA_ADD_LIBRARY取代原来的ADD_LIBRARY
3、如果是可执行程序,请使用CUDA_ADD_EXECUTABLE取代ADD_EXECUTABLE。

cmake_minimum_required(VERSION 3.14)
project(Hello)

set(CMAKE_CXX_STANDARD 14)
find_package(CUDA REQUIRED)

cuda_add_executable(Hello main.cu)

二、hello cuda!

#include "cuda_runtime.h"
#include "device_launch_parameters.h"

#include <stdio.h>

__global__ void test(void)  // __global__ 为CUDA的关键字,表示代码在设备端(GPU端)运行, 可以在CPU端被调用
{
    printf("Hello CUDA!\n");
}

int main()
{
    test <<<1, 1 >>> ();  // 函数调用,  <<< >>>中的第一个参数表示块的个数, 第二个参数表示每个线程块中线程的个数
    // 这里是使用一个线程块,这个线程块中只有一个线程执行这个函数.
    cudaDeviceSynchronize(); // 会阻塞当前程序的执行,直到所有任务都处理完毕(这里的任务其实就是指的是所有的线程都已经执行完了kernel function)。
    // 通俗讲,就是等待设备端的线程执行完成
    // 一个线程块中可以有多个线程,GPU的线程是GPU的最小操作单元

    return 0;
}

CLion运行即可
在这里插入图片描述

或者

cmake_minimum_required (VERSION 3.8)

project ("algMegaClassifyConfig" LANGUAGES CXX CUDA)


SET(INC_DIR ./cuda11.5/include
./opencv-452/include
./cuStudy)


SET(LIB_DIR  ./cuda11.5/libs
./opencv-452/libs)


#link_libraries(onnxruntime)
set(CUDA_LIBS cublas cudart curand cufft)
set(NPP_LIBS  nppc nppial nppicc nppidei nppif nppig nppim nppist nppisu nppitc npps )
set(OPENCV_LIBS opencv_world452d)
set(LINK_LIBS ${CUDNN_LIB} ${NPP_LIBS} ${CUDA_LIBS} ${OPENCV_LIBS} )


#aux_source_directory( ${COMMON_ROOT}/src  COMMON_SRC_LIST)

#SET(SRC_LIST ${COMMON_SRC_LIST} "src/location.cpp")

include_directories(${INC_DIR})
link_directories(${LIB_DIR})
link_libraries(${LINK_LIBS})
ADD_EXECUTABLE(CudaSamples "./cuStudy/post_gpu.cpp" "./cuStudy/gpu_decode.cu" )
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值