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_vector //任务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 条评论)
“”