IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Improving Branch Prediction By Modeling GlobalHistory with Convolutional Neural Networks ISCA AIDArc -> 正文阅读

[人工智能]Improving Branch Prediction By Modeling GlobalHistory with Convolutional Neural Networks ISCA AIDArc

知识点

在X86系统中:

IP(Instruction Pointer):指令指针寄存器,用以存放与区指令的偏移地址。

CS(Code Segment):代码段寄存器,存放段基址,即段起始地址的高16位。

CPU取指令时总是以CS为段基址,以IP为段内偏移地址。当CPPU从CS段中偏移地址为IP的单元中取出指令代码的一个字节后,IP自动个加1,指向指令代码的下一个字节。

现有的分支预测器已经在SEPC 2017的99%分支指令上达到了99%的预测准确率。

定义H2Ps为:在TAGE-SC-L下预测准确率低于99%的分支,且在每30M指令 SimPoint上至少1000次错误预测。

global historyIP(instruction pointerr)值和执行到当前指令为止执行过的分支指令的方向序列。

可变迭代控制结构导致的错误预测

针对由具有依赖于数据的迭代次数的的控制结构导致的H2P,文中提出了CNN helper。

上述结构导致 BPU 可用数据的位置变化。这种失真混淆了依赖精确序列匹配或位置相关性的最先进的预测器,但卷积滤波器可以容忍。

例: Listing 1中,H2P-1的全局历史受具有可变迭代次数的循环影响。 H2P-1 与第 5 行的数据依赖分支完全相关,并且当 uvec 的值均匀分布时,两个分支都偏向于 33% taken概率。 至关重要的是,它们被一个循环分隔,循环的迭代次数取决于数据。?第 8 行的循环将不同数量的不相关分支注入历史数据,导致预测数据相关分支的位置相对于 H2P-1 发生变化

CNN全局历史模型

A. 编码历史数据

对于一个H2P分支的动态实例,首先把全局历史序列 <IP,direction> 元组转换成代数矢量表示。IP是离散的,有许多可能的值,使用一个哈希函数索引到一个 “1-hot” 向量即只有1 bit是1,其余位为0),只有向量中的索引位是1,其余位是0。

比如,假设IP有2^p = 256种可能的值,则本实验中1-hot向量256位。

把每个 <IP,direction> 元组通过哈希函数 ((IP << 1) + Dir)&(2^p ? 1) 把方向位和 IP 的低 p-1 位链接到一起,映射到 [0,...,255]中的一个数 i,则构造的1-hot 向量即为256bit 中第 i 位为1,其余位为0的向量。然后由这些列向量组成一个全局历史矩阵 X [256 x 200],作为CNN的输入。本文设定 p=8 。

虽然采用这种编码存储开销大,但矩阵可以在BPU上用直接映射的表格查找来替代。移动位置

B. 第一层:Convolutional Correlation

卷积就是相乘再相加,卷积层的作用是提取特征。

第一层的作用是识别分支历史中哪些元组与H2P方向密切相关。

文中描述了采用两个一维滤波器([256 x 1]),使用历史矩阵和观察到的H2P分支方向对其分别进行训练,得到对应每个分支历史的权重。与待预测分支相关度较高的<IP,direction> 对应的权重较大,且分支历史中可能存在该相关分支的多个历史记录,则在计算内积中每次这样的历史都将对因一个较大的filter response。

对历史长度200的历史矩阵中的每个列向量进行式(1)计算,得到200*2个内积结果。

?

?C. 第二层:Positional Prediction

第二层滤波器的权重代表了每个历史位置对最终的预测作出了多少贡献。

在本层中过滤掉了之前提到的由于循环全局历史中相关分支的反复出现。

?卷积层计算得到的内积值传递到一个类感知器线性层(linear layer),该层中一个单独的滤波器与第一层的输出进行匹配,再将第一层的结果作为输入,与第二层的权重进行式(1)计算。

D. Stacking the Layers Together:将各层堆叠到一起?

第一层不考虑全局历史中各个分支的位置(相较于精确匹配和依赖分支相对位置),而是检测元组 <IP,direction> 的影响(每个历史位置上分支本身的内容);

第二层则考虑全局历史中分支位置对被预测分支的影响。

这些堆叠层的组合过滤使得CNN可以精确捕捉到H2P分支历史中的预测信号,即使移动位置。正是由于这两层的堆叠,使得CNNs模式匹配优于基于精确匹配和全局历史相对位置的PPM和感知器预测器。

E. Offline Training

该CNN helper的训练数据集包括一个H2P分支的历史矩阵和已观察到的它的方向,这些数据是使用Pin binary instrumentation tool [1]收集到的。使用Chainer [2]训练网络。

在BPU上使用2-bit CNNs预测

(后面没看完)

参考文献

[1]?C-K Luk, R Cohn, R Muth, H Patil, A Klauser, G Lowney, S Wallace,VJ Reddi, and K Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. 2005.

[2]?S Tokui, K Oono, S Hido, and J Clayton. Chainer: A Next-Generation Open Source Framework for Deep Learning. In LearnSys, 2015.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:33:09  更:2021-08-24 15:35:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:33:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码