| |
|
开发:
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 |
可变迭代控制结构导致的错误预测针对由具有依赖于数据的迭代次数的的控制结构导致的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
文中描述了采用两个一维滤波器([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. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |