首页 > 其他分享 >计算机体系结构-hw10

计算机体系结构-hw10

时间:2024-01-16 19:44:40浏览次数:25  
标签:hw10 计算机 指令 线程 SIMD 64 cycles 利用率 体系结构

计算机体系结构-hw10

前言

中国科学院大学张科老师的计算机体系结构的课后作业,不保证正确,请辩证看待。

SIMD Processing

img

Q1

阵列处理器的功能单元可以做很多的操作(MUL、ADD等),在同一时间做相同操作,在同一空间做不同操作(并行)。对功能单元的要求高,硬件更加复杂,成本高,效率高(相比向量处理器)。

向量处理器的功能单元只会做特定的操作,在同一时间做不同的操作,在同一空间做相同操作(流水线方式)。对功能单元的要求低(相比阵列处理器),硬件简单,成本低,效率低(相比阵列处理器)。

一个array processor 需要16个功能单元(并行),但是一个vector processor 只需要1个功能单元即可(流水线工作)。

因此,选择:The traditional array processor

Q2

由于这道题要求fully piplined,即每一个时钟周期都可以开启一个新的运算,因此我们假设功能单元的数量为4.
For a vector length of 1:

The traditional vector processor: 5 cycles

The traditional array processor: 5 cycles

For a vector length of 4:

The traditional vector processor: 8 cycles(第一个元素需要5个cycles,剩余元素需要3个cycles即可完成)

The traditional array processor: 5 cycles

For a vector length of 16:

The traditional vector processor: 20 cycles(第一个元素需要5个cycles,剩余元素需要15个cycles即可完成)

The traditional array processor: 5 cycles

GPUs and SIMD I

img

Q1

warps = N / 32(结果需要向上取整)

Q2

线程需要执行的总指令个数:32/*2 = 60

由于第一条指令,每个线程都会执行,因此已执行的指令数:32

第二条指令,由于A的数据分布:24个1,8个0。因此,只会有8个线程执行第二条指令。因此,已执行的指令数:32+8 = 40

因此,SIMD利用率 = 40 / 64 = 0.625
img

Q3

YES,可以使SIMD利用率达到100%,只需要保证A中的连续32个元素要么都可以被3整除,要么都不可以被3整除即可

由于条件语句跟B数组无关,因此B数组内容无需改动。(B可以为任意整数)

Q4

YES,可以使SIMD利用率达到56.25%,只需要保证A中的元素,每32个元素有4个元素可以被3整除(值为0),剩余28个元素不可以被3整除(值为1)即可。(即:36 / 64 = 0.5625)

由于条件语句跟B数组无关,因此B数组内容无需改动。(B可以为任意整数)

Q5

NO,不可以使SIMD利用率达到50%。因为,当每32个元素中只有一个元素可以被3整除,此时SIMD利用率为:33 / 64 = 51.5625%(至少为51.5625%)

img

Q6

采用dynamic warp formation,我们可以得到如下的答案:

X' = {11000000000...000011}

Y' = {10000000000...000000}

Z' = {00000000000...000000}

Q7

由于分支条件与B无关,因此不考虑B

对于A的数据分布,每32个线程中,都有24个1,8个0。

由于这些数据都是重复排列的,线程无法跨lane,因此无法进行动态的warp合并。

因此,即使采用dynamic warp formation,也无法提高SIMD利用率。

除非,A的数据分布发生变化,每64个线程中,都有24个1,8个0,24个0,8个1。这样的话,warp之间可以进行合并,可以提高SIMD利用率。

GPUs and SIMD II

img

Q1

the number of warps = 1024 / 64 = 16

Q2

最大可能的SIMD利用率为100%。

Q3

对于B数组中的每连续的64个元素,要么全为0,要么全为正数,要么全为负数。(此时利用率就是100%)

  • 全为0,所有线程只会执行第一条和第二条指令。
  • 全为正数,所有线程都不会执行第5条指令。
  • 全为负数,所有线程都会执行这6条指令。

Q4

要想获得最小的SIMD利用率,确保只会有一个线程进入到每一个分支语句。使得每一个分支语句后的指令的SIMD利用率为1/64。

具体来说,前两条指令,每一个线程都会执行,我们要保证每个warp中,只会有一个线程通过指令2(第一个分支)和指令4(第二个分支),确保以下指令只会有一个线程执行。

  • C[i] = A[i] /* B[i]
  • if(C[i] < 0)
  • A[i] = A[i] + 1
  • A[i] = A[i] - 2

因此,最小的SIMD利用率:(64/2 + 4) / 64/6 = 132 / 384

Q5

要想保证B数组中只会有一个元素可以同时通过指令2和指令4,B数组的数据分布为:每64个元素中,只会有一个元素为负数,其余必须为0(此时SIMD利用率最小)

致谢

    [1] 以上图片来自于计算机体系结构刘珂老师的课程

标签:hw10,计算机,指令,线程,SIMD,64,cycles,利用率,体系结构
From: https://www.cnblogs.com/gao79135/p/17930774.html

相关文章

  • 关机后,计算机无法被唤醒。
    遇到一个情况,在完全关机后。无法被唤醒。由于平时计算机都是休眠状态,保证开机后任然是工作状态,但完全关机后就无法重新唤醒。在于网卡唤醒设置。以下状态是无法唤醒设备的。 更改为【开启】并【确定】。那么在完全关机状态下,任可以唤醒开机。 ......
  • 计算机专业研究生 复试面试问题
    复试面试问题一、英语问题最喜欢的课程是什么?介绍你的家乡最喜欢的书计算机的五个组成部分数据库建立的过程介绍家庭自我介绍你是如何知道江苏大学以及为何会选择江苏大学自己的优点缺点,以及缺点怎么克服二、数据库方面数据库完整性和安全性的区别答:数据库的完整......
  • 计算机基础
    一、编码问题1.ASCIIASCII(AmericanStandardCodeforInformationInterchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。ASCII码使用7位二进制数(0~127)来表示128个字符,包括控制字符(如换行、回车制表符等)和可打印字符(......
  • 对计算机系统的理解
    ​ 该图是我对系统的大致了解,从下往上,随着抽象程度的增加,由硬件走向软件。其中硬件系统包括输入输出设备,存储器,控制器和运算器。运算器和控制器统称为中央处理器,当然随着GPU计算和人工智能的兴起,GPU也越来越多的参与到运算器中。存储器包括硬盘和内存,输入输出设备便是我们常用的......
  • 计算机硬件-CPU-校验码
    计算机组成部分(冯诺依曼架构):5个部分,运算器、控制器、存储、输入设备、输出设备CPU的功能:程序控制、操作控制、时间控制、数据处理。CPU的组成:主要由运算器、控制器、寄存器和内部总线等部件组成运算器:执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与或......
  • 计算机视觉相关会议与期刊
    本文来自知乎用户会找论文的鸡翅根,这里仅作备份,原文链接。计算机视觉和模式识别领域的代表就是四大顶会了:ICCV、ECCV、CVPR、NIPS,还有就是难度最高的PAMI了,这些都让人望而生畏。那么除了这些耳熟能详的期刊和会议之外,还有哪些该领域的期刊呢?下面我收集了一些该领域的代表性期刊......
  • 计算机网络——应用层(1)
    (计算机网络——应用层(1))小程一言我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。面向群体:在学......
  • 计算机网络(2)
    (计算机网络(2))小程一言我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。面向群体:在学计网的在校......
  • 大模型背景下计算机视觉年终思考小结(上)
    1.引言在过去的十年里,出现了许多涉及计算机视觉的项目,举例如下:使用射线图像和其他医学图像领域的医学诊断应用使用导航图像分析建筑物和土地利用率相关应用各种环境下的目标检测和跟踪,如交通流统计、自然环境垃圾检测估计等上述应用所采用的计算机视觉的方法遵循统一的标准流程:首......
  • Selenium Grid4.0 - 多台计算机上并行运行
    前言当你希望在多台计算机上并行运行测试?SeleniumGrid可以帮你实现。官方文档原文:https://www.selenium.dev/documentation/grid/getting_started/SeleniumGrid允许通过将客户端发送的命令路由到远程浏览器实例,在远程机器上执行WebDriver脚本。Grid可以做那些事?1.提供一......