NVIDIA CUDA初级教程视频学习笔记1

news/2025/3/15 6:07:12/

周斌老师
课程链接:

目录

  • 第一课
    • 内容
    • 生态环境
  • 第一课 CPU体系架构的概述
    • 什么是CPU
      • 指令
    • 存储器架构
    • CPU内部的并行性

第一课

预修课程:
Cuda c programming guide
在这里插入图片描述
参考内容 1,2,3查找一下。

内容

CPU体系架构概述
并行程序设计概述
CUDA开发环境搭建和工具配置
GPU体系架构概述
GPU编程模型
CUDA编程
CUDA程序分析和调试工具
基本优化
深入优化
最新NVIDIA GPU和CUDA特性

生态环境

在这里插入图片描述

nvidia cuda zone
QQ群:
GPU深度开发==》还没有加,记得去加群

多核系统和并行系统,是因为我们的单频系统性能遇到了瓶颈。

第一课 CPU体系架构的概述

什么是CPU

执行指令,处理数据的器件

  • 能够完成基本的逻辑和算术指令

指令

算术
访存
控制
这三类指令组成了一个计算机程序。

优化的目标:
每天指令需要的时钟周期最少
时钟周期尽量短

程序指令占比:
分支:12.5%
访存:46%
矢量运算:0.2%

CPU结构图:

芯片做计算
内存接口,接内存到CPU上
外部接口:显示系统的接口、多媒体的接口
桥接芯片接口==》硬盘、南桥北桥、

摩尔定律
芯片的集成密度每2年翻一番,成本下降一半。

28nm,芯片加工到了极限。
所以,摩尔定律表现不那么理想了。

百亿的量级的晶体管,这些晶体管都在干什么?

在这里插入图片描述
22亿个晶体管,8和芯片
中间最大的部分是三级缓存。
CPU是一个吞吐机,是一个处理机,不断把数据倒来倒去,花费在存储仓库花费在路上的成本最大。

简单的CPU结构图
在这里插入图片描述

上面部分数据通道
下面是控制逻辑

流水线
在这里插入图片描述

利用指令级并行

  • 极大的减小时间周期
    增加一些延迟和芯片面积

会带来的问题:
具有依赖关系的指令怎么办?
分支应当处理?
流水线的长度:

  • core 2 14级
  • pentium 4 > 20级
  • Sandy Bridge 14到20级之间

旁路Bypassing
在这里插入图片描述
add R1,R7需要用到sub R2,R3指令的结果,可以加一个旁路,这样就不用访问内存,直接获取R7的结果。

停滞Stalls
在这里插入图片描述
load [R3]->R7
add R1,R7->r2
add指令需要等待load指令完成

分支 Branches
在这里插入图片描述

分支预测Branch Prediction
在这里插入图片描述

基于过去的分支记录
在这里插入图片描述

分支断定

提升IPC
在这里插入图片描述

超标量

峰值N
增加了面积

  • N倍资源使用
  • 旁路网络N

Sandy Bridge超标量
在这里插入图片描述
指令调度Scheduling
在这里插入图片描述

寄存器重命名
在这里插入图片描述

乱序执行
把指令重新排一下,做一个优化
在这里插入图片描述
在这里插入图片描述

存储器架构

越大越慢
在这里插入图片描述

缓存Caching
将数据放在尽可能接近的位置
利用:
时间的邻近性
空间的邻近性

缓存层次

存储器的另外的设计考虑
分区==》避免多端口
一致性Coherency
控制器Memory controller==>

CPU内部的并行性

在这里插入图片描述

向量运算
相同处理的数据同时去做
在这里插入图片描述

数据级并行
单指令多数据
在这里插入图片描述

X86的向量运算
在这里插入图片描述

线程级的并行
在这里插入图片描述

多核Multicore
在这里插入图片描述

锁、一致性和同一性
在这里插入图片描述

CPU遇到了现实的困境,我们称为能量墙,cpu主频提升导致功耗很强度的提升,功耗的提升导致功耗的面积、集成度、成本不能无限增加。

结论
在这里插入图片描述


http://www.ppmy.cn/news/29096.html

相关文章

(六十二)当我们在SQL里进行分组的时候,如何才能使用索引?

今天我们接着上次的内容来谈谈在SQL语句里假设你要是用到了group by分组语句的话是否可以用上索引,因为大家都知道,有时候我们会想要做一个group by把数据分组接着用count sum之类的聚合函数做一个聚合统计。 那假设你要是走一个类似select count(*) fr…

机器学习:基于逻辑回归对某银行客户违约预测分析

机器学习:基于逻辑回归对某银行客户违约预测分析 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞&#x1…

JPA之实体之间的关系

JPA之实体之间的关系 10.1.1实体类创建 注解的应用 Table,Entity IdGeneratedValue指定主键,Column P174 实体类编写规范 Table(name "t_user") Entity(name "User") public class User implements Serializable {IdGeneratedVa…

手把手搭建springboot项目06-springboot整合RabbitMQ及其原理和应用场景

目录前言工作流程-灵魂画手名词解释交换机类型一、安装1.1 [RabbitMQ官网安装](https://www.rabbitmq.com/download.html)1.2 Docker安装并启动二、食用教程2.1.导入依赖2.2 添加配置2.3 代码实现2.3.1 直连(Direct)类型2.3.2 引入消息手动确认机制2.3.2…

做软件测试,如何才能实现月入20K?

听我的,测试想要月入20k。 首先你要去大厂,不在大厂起码也得在一线城市,北上广深。 二线城市的话成都、杭州最好。 不然的话想都不要想。 像我之前整理过成都的公司,除了字节跳动、蚂蚁金服、滴滴、美团、京东、平安、字节跳动…

UML建模

主要记录UML中的相关知识,包括类、对象、接口、方法、用例、活动、状态、组件和部署图,详细介绍类之间关系与类图的绘制 文章目录一、UML介绍二、类图类之间的关系依赖关系继承关系实现关系关联关系组合关系聚合关系正文内容: 一、UML介绍 …

MATLAB算法实战应用案例精讲-【优化算法】增强型鲸鱼优化算法(EWOA)(附matlab代码实现)

前言 增强型鲸鱼优化算法(Enhanced Whale Optimization Algorithm,EWOA)是Mohammad H. Nadimi-Shahraki等人于2022年提出的一种改进算法。由于标准的鲸鱼优化算法及其它的改进算法都存在种群多样性低和搜索策略差的问题,因此引入有效的策略来缓解鲸鱼优化算法的这些核心缺点…

C# if break,if continue,if return的区别和使用

故事部分: 现在你肚子饿了,想要去: 1.吃个三菜一汤。 2.吃个蛋糕。 3.喝个奶茶。 结果,你吃饭的时候,吃到一个虫子。 你会有几种做法? 1.把有虫子这道菜拿走,继续吃下一道菜 。 2.算了&#xff…