GPU并行与CUDA编程

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

区分两种API的前缀
驱动: cu_
运行: cuda_

在这里插入图片描述important:
CUDA函数库
全部库: http://developer.nvidia.com/gpu-accelerated-libraries

nvcc编译器,注意后缀
在这里插入图片描述CUDA硬件环境:
在这里插入图片描述芯片是对于架构的实现

并行计算:
在这里插入图片描述在这里插入图片描述
深度学习适合并行编程

在这里插入图片描述在这里插入图片描述stencil是以某一固定模板的形式读取数据(只能是读相邻元素的关系)

在这里插入图片描述在这里插入图片描述在这里插入图片描述

编写CUDA程序
在这里插入图片描述在这里插入图片描述习惯:
h_ CPU
d_ GPU
在这里插入图片描述分配内存空间
CPU的数据复制给GPU: cudoMEmcpy

在这里插入图片描述
此squeue的kernels:

CPU加载kernels给GPU做计算
square<<< 1,ARRAY_SIZE >>>(d_out,d_in);
加载到GPU上去运行

nvcc same as gcc
-o : object 目标程序

CUDA编程:
不保证原则:不保证何时何地线程块运行
在这里插入图片描述在这里插入图片描述

内存速度比较:
在这里插入图片描述barrier屏障:
在这里插入图片描述
在这里插入图片描述kernel 都是一个一个完成的

在这里插入图片描述硬件与软件相对应
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述读取内存:
在这里插入图片描述cuda高效策略:
避免: 1.在kernel中做条件判断
2. 循环长度不一
核心: 在kernel中的线程运行有短板原则

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述共享内存要考虑用屏障

在这里插入图片描述
在这里插入图片描述

针对网格和block使用,主要用于通讯

在这里插入图片描述
并行化归约:
并行的加法:可以看成对折,不断的取二分之一
在这里插入图片描述

采用并行编程

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
CPU与GPU协同
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述主要是要进行单位的转化

在这里插入图片描述在这里插入图片描述

原视频

【公开课】GPU并行计算与CUDA编程(2017)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值