CUDA加速学习

今天学习了一下NVIDIA官方教程第一课

CUDA 提供了一种可扩展 C、C++、Python 和 Fortran 等语言的编码范式

我对 CUDA理解,CUDA就像是C的超集一样,提供了对GPU的操作,我目前觉得CUDA没有太多面向对象的东西,更多的是面向过程的代码

CPU上的代码称为主机代码,而在GPU上的代码称为设备代码,GPU就可以理解成一种外设一样,专门用来处理一些计算

在调用GPU后,需要在CPU上加同步锁等待GPU运行完成(CPU给GPU发送一条指令,GPU就去算去了,等完了再返回给CPU,感觉就像是IO设备一样)

CUDA 为许多常用编程语言提供扩展,在此文以C++为例

.cu 是 CUDA 加速程序的文件扩展名

void CPUFunction()
{
  printf("This function is defined to run on the CPU.\n");
}

__global__ void GPUFunction()
{
  printf("This function is defined to run on the GPU.\n");
}

int main()
{
  CPUFunction();

  GPUFunction<<<1, 1>>>();
  cudaDeviceSynchronize();
}
  • __global__ 关键字表明以下函数将在 GPU 上运行并可全局调用,而在此种情况下,则指由 CPU 或 GPU 调用。
  • 通常,我们将在 CPU 上执行的代码称为主机
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值