Linux下第一个CUDA程序(个人测试)

1、首先建立一个文件夹,里面包含 build 文件夹、.cu 源程序以及 CMakeLists.txt

(1)build 里面是装 cmake 编译文件

(2)CMakeLists.txt 写的是 cmake 命令

CMakeLists.txt:


project(CUDA_MAT_MUL LANGUAGES CXX CUDA)

set(SRC_LIST mytest.cu)

add_executable(mytest ${SRC_LIST})

include(CheckCXXCompilerFlag)

CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)

CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)

if(COMPILER_SUPPORTS_CXX11)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

elseif(COMPILER_SUPPORTS_CXX0X)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

else()

message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")

endif()

#print message

message(${PROJECT_SOURCE_DIR})


(3)seqCuda.cu 即是源程序


//seqCuda.cu

#include

using namespace std;

#include

#include

#include

#include

int main(){

cout<<"开始运行!"<

const int N=3;

//任务1:创建数组

thrust::device_vectora(N);

//任务2:填充数组

thrust::sequence(a.begin(),a.end(),0);

//任务3:并行计算数组元素之和

int sumA=thrust::reduce(a.begin(),a.end(),0);

//任务4:串行计算0——N-1之和

int sumCheck=0;

for(int i=0;i

//任务5:检查结果的正确性

if(sumA==sumCheck)cout<<"Test Succeeded!"<

else{

cout<<"Test FAILED!"<

return 1;

}

return 0;

}


将.cu 文件和.txt文件放在同一个文件下,创建一个新的build文件,用于编译

2、执行:cmake ../ 生成Makefile文件

3、执行:make 命令,生成目标文件seqCuda

4、执行:./seqCuda 运行程序,即完成第一次测试。


一个小测试,个人实践。目前徘徊是否学习CUDA并行,小白都不算,感觉真的很难,脑子不够用...

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章