GPU编程模型(CUDA)

本博客用来记录所学GPU知识。主要来源于NVIDIA初级教程。

名词解释

1.FLOPS 每秒钟的浮点数运算

2.GFLOPS 10^9*FLOPS

3.TFLOPS 1000*GFLOPS

为什么需要GPU?

应用的需求越来越高(天气预报、石油勘探)

CPU-GPU交互

1.CPU和GPU有各自独立的物理内存空间

2.两者通过PCIE总线互联,数据通过总线传递

3.交互开销较大

线程的组织架构

一个Kernel具有大量的线程。线程划分成大量的线程块,线程块的数目其实是由用户指定的,一个线程块中的线程可以共享存储区。线程和线程块都有唯一的表示ID,可以有效的索引。

编程模型

常规上的GPU用于处理图形图像,可以应用SIMD(single instruction mutiple data),单指令多数据可以理解为数据并行分割。

GPU版本的SIMT(single instruction mutiple thread)

1.大量线程模型高度并行,不再是指令层次

2.多个线程执行相同指令流

3.GPU上大量线程承载调度

CUDA函数声明(device指GPU,host指CPU)

 执行位置调用位置
__device__ float DeviceFunc()devicedevice
__global__ void KernelFunc()devicehost
__host__ float HostFunc()hosthost

注:核函数为入口函数,CPU上通过调用核函数会在GPU上创建大量的线程,使得数据并行处理,在GPU上执行函数内的内容,但核函数必须返回void;__device__和__host__可以同时修饰一个函数,GPU和CPU上都可以调用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值