CUDA学习(一):Makefile编译Hello cuda!


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



本章节学习内容:
1、Linux下如何使用makefile编译cuda文件


一、Linux下编译

系统Centos7.4, cuda10
文件目录

.
├── helloCuda.cu
└── Makefile

c++使用的是 gcc hello.cpp -o hello
cuda是采用nvcc编译 将gcc改成nvcc即可

make
./helloCuda

二、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;
}

三、makefile文件


#########################################################################
#
# Makefile for cuda_test
#
#########################################################################

TEST_SOURCE = helloCuda.cu

TARGETBIN := ./helloCuda

CC = nvcc

$(TARGETBIN):$(TEST_SOURCE)
	$(CC)  $(TEST_SOURCE) -o $(TARGETBIN)

.PHONY:clean
clean:
	-rm -rf $(TARGETBIN)
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值