当前位置: 首页 > article >正文

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)

4 GPU概述


http://www.kler.cn/a/18219.html

相关文章:

  • 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
  • flutter 发版的时候设置版本号
  • ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 虚幻引擎 CEO 谈元宇宙:发展、策略与布局
  • Python 随笔
  • Jmeter性能测试 -3数据驱动实战
  • cookie和session的简单介绍(lnh25)
  • OJ练习第93题——数青蛙
  • Docker启动多个mysql容器
  • (六)【平衡小车制作】位置式PID、直立环与速度环编程
  • CompletableFutrue异步处理
  • React 第三方插件 —— Cron 表达式生成器(qnn-react-cron)
  • Java 多线程知识
  • K8S:K8S自动化运维容器化(Docker)集群程序
  • 《python爬虫练习》之随机的User-Agent请求头
  • SOFA Weekly|开源之夏 MOSN 与 Layotto 项目简介、社区会议预告、社区本周贡献
  • java计算矩形的面积和周长的方法
  • OpenFeign详解
  • 前端基于uniapp[uniPush]实现APP消息推送(安卓、IOS)
  • 为什么选择云计算
  • 什么是镜像?阿里云服务器镜像是什么?镜像怎么选?
  • 时序预测 | Matlab实现SSA-GRU、GRU麻雀算法优化门控循环单元时间序列预测(含优化前后对比)
  • 全网最火,Web自动化测试驱动模型详全,一语点通超实用...
  • k8s基础4——deployment控制器、应用部署、升级、回滚、水平扩容缩容
  • LeetCode 1206. 实现跳表
  • OJ练习第94题——编辑距离