c++ cuda加速学习笔记
1. 环境配置
(1)显卡驱动下载官网,需要知道自己电脑的显卡类型
搜索链接:https://www.nvidia.com/Download/index.aspx?lang=zh-cn
(2)怎么知道自己的的显卡类型
https://jingyan.baidu.com/article/2a13832888b2a7464a134fef.html
此电脑->管理->设备管理器->显卡适配器
nvidia属于英伟达GeForce系列驱动,选择它即可
(3)安装驱动,直接双击即可,然后选择默认的路径,一直点下一步,就可以晚餐默认的安装
(4)成功安装英伟达驱动后,win+R,输入cmd,进入命令行界面,输入nvdia-smi,即可查看nvidia驱动版本,以及最高支持的cuda版本。
(5)下载cuda
https://developer.nvidia.com/cuda-toolkit-archive
以及下载与之相对应的cudnn
https://developer.nvidia.com/cudnn
参考https://blog.csdn.net/qunsorber/article/details/122255530
2 cpu-gpu基本概念
在这里插入代码片
![在这里插入图片描述](https://img-blog.csdnimg.cn/7857d34feb3c48cbb5c2db3cdcf63aa3.png#pic_center)
1.流水线里的旁路,bypassing,两条指令相互依赖,前一条指令可以加一些别的支路,可以先执行后面的指令
2.停滞,有些情况,即使加旁路也没有用,只能等前一条指令运行结束
3.分支预测:Brandch Prediction,现代预测器的准确率大于90%
4.分支断定:不猜结果是什么,全做,把所有的可能性都做一遍
5.超标量 superscalar:增加流水线的宽度,峰值IPC为N,宽度增加会导致分支和调度开销的增加
6.指令调度,scheduling,
![在这里插入图片描述](https://img-blog.csdnimg.cn/dce2c408ef4a46caaddc46ba02ee2b95.png#pic_center)
上面的第一条指令和第三条指令同名了,可以对名字进行命名,那么这两条指令就可以同时执行了
![在这里插入图片描述](https://img-blog.csdnimg.cn/4957a90a5c934ff3b1103ececbb6d01b.png#pic_center)
7.乱序执行:这是一个重排指令,IPC是一个时钟周期所能执行的次数。乱序执行的IPC接近理想状态
8.cpu的存储器,存储器越大越慢
9.缓存:将数据放在尽可能要处理的数据接近的位置;时间临近性和空间临近性;
10.数据级的并行,是指同时有对个数据要处理
多核:一个人做不完,就多个人做
![在这里插入图片描述](https://img-blog.csdnimg.cn/cc85bb4b69304684a8db9945a3128bf5.png#pic_center)
单指令多数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/15e05007df904254a4522a4345657e05.png#pic_center)
11.锁存:加锁,别人不能访问
缓存的一致性:一致性协议,谁的数据是对的
同一性:什么样的数据是对的
12 新摩尔定律:处理器越来越胖,单个性能已经达到极限,只能增加数量
3 并行处理
![在这里插入图片描述](https://img-blog.csdnimg.cn/99160135a83b4dfebe0e91351e685356.png#pic_center)
常见名词:
共享存储,指令处理的数据需要放在某个地方,数据是放在一起的
分布式存储:数据放在不同的地方
通信:执行指令之间发生的交互
同步:对于并行系统,多个指令段同时执行,破坏了并行系统的并行性,也即破坏了独立性
粒度:并行计算每个任务的大小
加速比:相同层次的计算系统的比较,cpu型号是否一致,型号是否一致
并行开销:完成并行计算所使用的开销,比如通信,存储
可扩展性:比如在一个四核系统,扩展到40个系统,他的效率是不是成倍的增长的
![在这里插入图片描述](https://img-blog.csdnimg.cn/37e4de94ba9a4c3ab3e71704d7f172aa.png#pic_center)
12.
共享存储模型:可能会导致取数据的路上的拥堵
消息传动模型:彼此独立的空间上的信息传递
![在这里插入图片描述](https://img-blog.csdnimg.cn/4673885df279431cb9e39ca2bc9ea2b1.png#pic_center)
13.加速比:P表示并行的部分
![在这里插入图片描述](https://img-blog.csdnimg.cn/02a2515a8d9a48b7baec5e544645ade0.png#pic_center)![在这里插入图片描述](https://img-blog.csdnimg.cn/8b55a407f5504ad0b2425ac70da04156.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7250b4f7830a447ab52a8c9240ec62fc.png#pic_center)