计算机组成与设计硬软件接口学习2

并行处理器:从客户端到云

任务级并行或进程级并行:通过同时运行独立的多个程序来使用多处理器

并行处理程序:同时在多个处理器上运行的单个程序

向量和标量

向量指令的重要属性:

  • 单个向量指令指定了大量工作--相当于执行了完整的循环。正因为这样,指令取指和译码带宽大大减少
  • 通过使用向量指令,编译器或程序员确认了向量中的每个结果都是独立的,因此硬件无需再检查向量指令内的数据冒险
  • 当程序中存在数据级并行时,相比使用MMD多处理器,使用向量体系结构和编译器的组合更容易写出高效的应用程序
  • 硬件只需要在两条向量指令之间检查向量操作数之间的数据冒险,而无须检查向量中的每个数据元,减少检查的次数可以节省能耗和时间
  • 访问存储器的向量指令具有确定的访问模式。如果向量中的数据元位置都是连续的,则可以从一组存储器中交叉访问数据块,从而快速获取向量。因此,对整个向量而言,主存储器的延迟开销看上去只有一次,而不是对向量中每一个字都产生一次
  • 因为整个循环被具有已知行为的向量指令所取代,所以通常由循环引发的控制冒险不再存在
  • 与标量体系结构相比,节省的指令带宽和冒险检查以及对存储器带宽的有效利用,使得向量体系结构在功耗和能耗方面更具有优势

向量算术指令通常允许一个向量寄存器的元素N与其他向量寄存器的元素N进行交互。这极大地简化了高度并行的向量单元的构造--可构造为多个平行的向量通道

向量通道:一个或多个向量功能单元和一部分向量寄存器堆

硬件多线程

线程:包括程序计数器,寄存器状态和栈。线程是一个轻量级的进程,线程通常共享一个地址空间,而进程则不共享

进程:包括一个或多个线程,完整的地址空间和操作系统状态。因此,进程的切换通常需要调用操作系统,而线程切换则不用

硬件多线程:通过在一个线程停顿时切换到另一个线程来提高处理器的利用率

硬件多线程允许多个线程以重叠的方式共享单个处理器的功能单元,以有效地利用硬件资源

细粒度多线程:硬件多线程的一种版本,在每条指令之后切换线程

在每条指令执行后进行线程切换,导致了多线程的交叉执行。这种交叉执行通常以一种轮转方式完成,并跳过在该时钟周期停顿的任何线程。细粒度多线程的一个有点就是可以隐藏由短期和长期停顿引起的吞吐量损失,主要缺点是会减慢单个线程的执行速度,因为已经就绪的线程会因为执行其他线程的指令而延迟

粗粒度线程:硬件多线程的另一种版本,仅在重大事件(例如末级cache失效)之后才切换线程

几乎不会减慢单个线程的执行速度,因为只有在线程遇到高开销的停顿时才会发射来自其他线程的指令。但是有个严重缺点:降低吞吐量损失的能力有限,尤其对于短停顿

同时多线程:多线程的一个版本,通过利用多发射,动态调度的微体系结构的资源来降低多线程的成本

因为SMT依赖于现有的动态机制,因此它不会在每个时钟周期切换资源,相反,SMT始终执行来自多个线程的指令,将资源分配交给硬件完成,这些资源是指令槽和重命名寄存器

同时多线程:多线程的一个版本,通过利用多发射,动态调度的微体系结构的资源来降低多线程的成本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/134558.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录训练营第四十八天|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系…

基于PyTorch使用LSTM实现新闻文本分类任务

本文参考 PyTorch深度学习项目实战100例 https://weibaohang.blog.csdn.net/article/details/127154284?spm1001.2014.3001.5501 文章目录 本文参考任务介绍做数据的导入 环境介绍导入必要的包介绍torchnet和keras做数据的导入给必要的参数命名加载文本数据数据前处理模型训…

Android高级开发-APK极致优化

九道工序 1. SVG(Scalable Vector Graphics)可缩放矢量图 使用矢量图代替位图可以减小 APK 的尺寸,因为可以针对不同屏幕密度调整同一文件的大小,而不会降低图像质量。 矢量图首次加载时可能消耗更多的 CPU 资源。之后,二者的内存使用率和…

Java集合之LinedList

LinedList类实现了List接口,他提供了(双向的)链表数据结构 在该链表中的每一个元素除了存储本身的内容之外还存储指向前一个元素的指针和指向后一个元素的指针,下图展示了一个包含三个元素的双向链表,每个链表都有一个…

jeesite实现excel导入功能(保姆级图文教程)

文章目录 前言一、准备工作1.准备一个excel模板,放入static目录2.application.yml文件中设置文件存储路径3.使用easyexcel插件解析excel数据,pom文件导入easyexcel二、使用步骤1.列表页添加下载模板按钮2.表单页添加文件上传3. 创建excel解析对应实体4.后台完成文件上传代码,…

深入探索智能问答:从检索到生成的技术之旅

目录 一、智能问答概述1. **语义理解**2. **知识库和数据库**3. **上下文感知**4. **动态学习和自适应** 二、发展历程1. **基于规则的系统**2. **统计方法的兴起**3. **深度学习和神经网络的突破**4. **预训练模型** 三、智能问答系统的主要类型四、基于知识库的问答系统五、基…

机器视觉之Basler工业相机使用和配置方法(C++)

basler工业相机做双目视觉用,出现很多问题记录一下: 首先是多看手册:https://zh.docs.baslerweb.com/software 手册内有所有的源码和参考示例,实际上在使用过程中,大部分都是这些源码,具体项目选择对应的…

【微信小程序】项目初始化

| var() CSS 函数可以插入一个自定义属性(有时也被称为“CSS 变量”)的值,用来代替非自定义 属性中值的任何部分。 1.初始化样式与颜色 view,text{box-sizing: border-box; } page{--themColor:#ad905c;--globalColor:#18191b;--focusColor…

【测试开发】答疑篇 · 什么是软件测试

【测试开发】答疑篇 文章目录 【测试开发】答疑篇1. 生活中的测试2. 什么是软件测试3. 为什么要有测试/没有测试行不行4. 软件测试和软件开发的区别5. 软件测试和软件调试之间的区别6. 软件测试的岗位7. 优秀测试人员具备的素质 【测试开发】答疑篇 软件不一定是桌面应用&#…

JSON和全局异常处理

目录 1️⃣JSON 一、什么是json? 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六,使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试: …

树莓派4b装系统到运行 Blazor Linux 本地程序全记录

在Linux下运行gui程序,咱也是第一次做,属于是瞎子过河乱摸一通,写得有什么不对和可以优化的地方,希望各位看官斧正斧正. ##1. 下载烧录器 https://www.raspberrypi.com/software/####我选择的是Raspbian 64位系统,并配置好ssh账号密码,wifi,以便启动后可以直接黑屏ssh连接 ##…

成都收录《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作

成都收录《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作已收录至成都

4基于pytorch的蚁群算法求解TSP(旅行商问题),访问一座城市并回到最初位置的最佳路径,解决组合中的NP问题。程序已调通,替换自己的数据可以直接运行。

基于pytorch的蚁群算法求解TSP(旅行商问题),访问一座城市并回到最初位置的最佳路径,解决组合中的NP问题。程序已调通,替换自己的数据可以直接运行。 4pytorchTSP路径优化 (xiaohongs4pytorchTSP路径优化 (xiaohongshu.com)4pytorchTSP路径优化…

Vim的基础操作

前言 本文将向您介绍关于vim的基础操作 基础操作 在讲配置之前,我们可以新建一个文件 .vimrc,并用vim打开在里面输入set nu 先给界面加上行数,然后shift ;输入wq退出 默认打开:命令模式 在命令模式中&#xff1a…

TCP详解之三次握手和四次挥手

TCP详解之三次握手和四次挥手 1. TCP基本认识 1.1 什么是 TCP TCP是面向连接的、可靠的、基于字节流的传输层通信协议。 1.2 TCP协议段格式 我们先来看看TCP首部协议的格式 我们先来介绍一些与本文关联比较大的字段,其他字段不做详细阐述。 序列号&#xff1a…

基于SSM框架的《超市订单管理系统》Web项目开发(第二天)完成登录模块和用户退出模块

《超市订单管理系统》(第二天) 基于SSM框架的Web项目开发 ​ 昨天我们实现了登录功能,但是用的是模拟数据。今天我们要链接数据库整合SpirngMybatis,读取数据库中的真实数据,用来跟我们输入的userCode和userPassword进…

制作立体图像实用软件:3DMasterKit 10.7 Crack

3DMasterKit 软件专为创建具有逼真 3D 和运动效果的光栅图片而设计:翻转、动画、变形和缩放。 打印机、广告工作室、摄影工作室和摄影师将发现 3DMasterKit 是一种有用且经济高效的解决方案,可将其业务扩展到新的维度,提高生成的 3D 图像和光…

Git - Git Merge VS Git Rebase

文章目录 概述Flow View小结 概述 Git merge和Git rebase是两种不同的版本控制工作流程,它们用于将一个分支的更改合并到另一个分支。它们有不同的工作原理和应用场景,下面是它们的主要区别: 合并的方式: Git Merge:合…

用c++实现五子棋小游戏

五子棋是一款经典小游戏,今天我们就用c实现简单的五子棋小游戏 目录 用到的算法: 思路分析 定义变量 开始写代码 完整代码 结果图: 用到的算法: 合法移动的判断:isValidMove 函数通过检查指定位置是否在棋盘范…

基于matlab实现的 BPSK调制AWGN通道未编码数据误码率程序

完整程序: clear; close all; clc; c0; rate1; %Code rate N10000000; %Number of bits for EbNoc0:1:10 %Ratio of bit energy to no…