“会议概览: 2020 47th ISCA”

开个新坑,看各大会议的Abstract,感兴趣的文章看Introduction。以求快速获得新Ideas。

Industry

《Data Compression Accelerator on IBM POWER9 and z15 Processors : Industrial Product》,IBM research/IBM Systems

  • 硬件压缩提升I/O和网络性能,减少存储和内存开销
  • on-chip的压缩加速器,0.5%的面积换388x的加速比(POWER9),23%的实际性能提升
  • 重点在trade-off

《High-Performance Deep-Learning Coprocessor Integrated into x86 SoC with Server-Class CPUs Industrial Product》,Centaur Technology(一家x86 CPU芯片设计公司,1995年成立,美国德克萨斯)

  • DL coprocessor (NCORE) + x86 SoC(server-class CPU)
  • int8,uint8,int16,bf16, 20T ops/s
  • MLPref Inference v0.5 1218IPS, 1.05ms latency ResNet-50-v1.5/ 0.329ms MobileNet-V1

《The IBM z15 High Frequency Mainframe Branch Predictor Industrial Product》,IBM system group

  • 多级look-ahead structure
  • 能预测branch direction和target addresses,增强:multiple auxiliary direction, target, and power predictors
  • 为enterprise-class system的特定workloads优化

《Evolution of the Samsung Exynos CPU Microarchitecture》,作者来自于Sifive/Centaur/Independent Consultant/ARM/Texas A&M University/AMD/Nuvia/Goodix

  • 讨论了三星Exynos家族从M1到M6的设计变化
  • perceptron-based branch prediction/Spectre v2 security enhancements/micro-operation cache algorithms/prefetcher advancements/memory latency optimizations

《Xuantie-910: A Commercial Multi-Core 12-Stage Pipeline Out-of-Order 64-bit High Performance RISC-V Processor with Vector Extension : Industrial Product》,Alibaba T-head division

  • 基于RISC-V RV64GCV指令集+自定义算术运算/bit manipulation/load&store/TLB和cache operations+RISCV 0.7.1向量扩展
  • 支持多核多cluster的SMP(对称多处理) with cache coherence+12级流水/乱序执行/多发射超标量/2.5GHz/12nm/每个核心0.8mm^2
  • 软件和工具链的co-optimization,在RISC-V上表现最好,和ARM比有来有回

CPU based

《Divide and Conquer Frontend Bottleneck》, Sharif University of Technology, Sharif University of Technology谢里夫理工大学(伊朗麻省理工),Ali Ansari, Hamid Sarbazi-Azad

  • instruction和BTB(branch-target-buffer分支预测先取的) miss导致的frontend stalls很大,现有的预取器不行
    • 指令的miss penalty远大于buffer的miss
  • 把Frontend的bottleneck分成三类分别处理。
    • sequential miss,SN4L
    • discontinuity miss, Dis
    • BTB miss, pre-decoding the prefetched blocks
  • 5%的提升

《Auto-Predication of Critical Branches*》,Intel Labs(Bengaluru, India和Haifi, Israel)

  • H2P(hard-to-predict)和mis-speculation限制了分支预测的scalability。Predication(同时取两个分支的数据)将控制依赖关系替换成数据依赖可以缓和这个问题,但可能降低指令并行性。
  • 分析了trade-off(prediction和predication),提出ACB,自动根据是否critical to performance来关闭predication。
  • 使用复杂的性能检测。8%的提升

《Slipstream Processors Revisited: Exploiting Branch Sets》

《Bouquet of Instruction Pointers: Instruction Pointer Classifier-based Spatial Hardware Prefetching》

《Focused Value Prediction*》,Intel Labs(Bengaluru, India/Haifa, Israel)

《Flick: Fast and Lightweight ISA-Crossing Call for Heterogeneous-ISA Environments》

《Efficiently Supporting Dynamic Task Parallelism on Heterogeneous Cache-Coherent Systems》

《T4: Compiling Sequential Code for Effective Speculative Parallelization in Hardware》

Accelerators

《Think Fast: A Tensor Streaming Processor (TSP) for Accelerating Deep Learning Workloads》,Groq Inc(加州山景城).

  • 内存单元插入到vector/matrix计算单元,以利用dataflow的locality
  • observations 1机器学习数据并行可以映射到硬件张量中 2stream programming model可以准确理解和控制硬件单元,带来更好的performance
  • TSP探索并行性,包括指令级别、存储并发、数据和模型并行,同时保证determinism通过减少所有的硬件反应元素(arbiters caches)
  • 20.4K IPS ResNet50
  • Functional slicing: local functional homogeneity but chip-wide (global) heterogeneity, each tile竖条条 implements a specific function and is stacked vertically,dataflow是左右走的,并且指令分别发到每一个竖条条上。
  • Parallel lanes and streams: Streams provide a programming abstraction and are a conduit导向 through which data flows between functional slices.

《Genesis: A Hardware Acceleration Framework for Genomic Data Analysis》

《DSAGEN: Synthesizing Programmable Spatial Accelerators》

《Bonsai: High-Performance Adaptive Merge Tree Sorting》

《Gorgon: Accelerating Machine Learning from Relational Data》

《DSAGEN: Synthesizing Programmable Spatial Accelerators》

《A Specialized Architecture for Object Serialization with Applications to Big Data Analytics》

《SpinalFlow: An Architecture and Dataflow Tailored for Spiking Neural Networks》, Utah大学, Surya Narayanan, Pierre-Emmanuel Gaillardon

  • SNN dataflow需要考虑多个tick的neuron potentials,带来了新的数据结构和新的数据pattern。
  • 提出SpinalFlow,处理Compressed,time-stamped, sorted sequence的输入输出;一个神经元执行一系列步骤的计算来减少potential的存储开销,better data reuse

《NEBULA: A Neuromorphic Spin-Based Ultra-Low Power Architecture for SNNs and ANNs》

Security

《MuonTrap: Preventing Cross-Domain Spectre-Like Attacks by Capturing Speculative State》

System-Level

《SysScale: Exploiting Multi-domain Dynamic Voltage and Frequency Scaling for Energy Efficient Mobile Processors》

《The NEBULA RPC-Optimized Architecture》

《CryoCore: A Fast and Dense Processor Architecture for Cryogenic Computing》

《Heat to Power: Thermal Energy Harvesting and Recycling for Warm Water-Cooled Datacenters》

Others

《Printed Microprocessors》

《Déjà View: Spatio-Temporal Compute Reuse for‘ Energy-Efficient 360° VR Video Streaming》

《SOFF: An OpenCL High-Level Synthesis Framework for FPGAs》

《Hardware-Software Co-Design for Brain-Computer Interfaces》

“会议概览: 2020 ASPLOS”

Session 4A: huge memories and distributed databases

∅sim: Preparing System Software for a World with Terabyte-scale Memories

  • 问题:现在系统不能scale到大内存
  • 提出了0sim的模拟器,能够模拟TB级别的内存(通过压缩内存(替换数据为0)),达到了150x的内存缩减
  • Case studies:
    • interactively debug memcached OOM >=2TB system
    • irreversible fragmentation with 100s of GBs free.

Session 5A: frameworks for deep Learning

Interstellar: Using Halide’s Scheduling Language to Analyze DNN Accelerators

  • DNN加速器的设计空间可以看做一个loop transformation: blocking(split/reorder)、dataflow(unroll)、resource allocation(memory)
  • 使用Halide schedule 能够simulate和分析加速器设计空间
  • 很多不同的dataflow都能达到类似的energy efficiency,因为主要开销在RF和DRAM

DeepSniffer: A DNN Model Extraction Framework Based on Learning Architectural Hints

  • 使用运行时sequence identification(类似于Speech recognition),输入GPU kernel features(Latency/ Rv/ R/W / kdd),使用kernel model和context model预测,最后CTC decoder出来。
  • 神经网络的运行栈可以被学习,用来预测得到网络结构
  • 使用context的信息能使得model extraction更powerful
  • 网络结构对targeted attack是重要的(即使没有dimension和parameters)

Session

论文笔记 《Classifying Memory Access Patterns for Prefetching》

这篇论文是发表在ASPLOS2020的《Classifying Memory Access Patterns for Prefetching》,作者来自Google的Parthasarathy Ranganathan和来自Stanford的Christos Kozyrakis,第一作者是Grant Ayers和Heiner Litz。

这篇文章通过分析内存访问的行为来判断是否一个Prefetcher是否有效。作者结合二进制代码分析和动态的Trace分析制作了了一个分析工具,揭示了访问的特性,同时利用特性提出了software prefetch injection的方法。

方法

内存访问的分类

  • 只关注load instruction:带来最多cache miss
  • 同一个PC两次load的address分类
    • Constant: $A_n=A_{n-1}$,例如*ptr访问
    • Delta: $A_n=A_{n-1}+d$,例如streaming,array traversal
    • Pointer Chase: $A_n=Ld(A_{n-1})$,例如next=current->next
      • 地址是从之前的地址得到的
    • Indirect Delta: $A_n=Ld(B_{n-1}+d)$,例如*(M[i])
    • Indirect Index: $A_n=Ld(B_{n-1+c}+d)$,例如M[N[i]]
    • Constant plus offset reference: $A_n=Ld(B_{n-1}+c_2)+c_1$例如Linked list(链表)遍历

预取器内核(Prefetch Kernel)抽取

  • dataflow analysis
    • 找到并分类instructions causing miss
    • 因为可能的path极多,dynamic profile能剪枝到prefetch最重要的部分
  • prefetch kernel
    • miss address=data+computations
    • 用图表示关系,vetex是data,edge是computation
      • 根节点是miss PC的地址
      • 找生成根节点的子节点的依赖
    • 找到一个PC所有出现的地方
    • 细节
      • Load-to store依赖:找load instruction的address的prior store(必须要动态分析,最大的不同点)
      • 直到所有节点是terminal节点:constant、random number、trace边界等
    • 不考虑控制逻辑,因为trace本身就考虑了控制逻辑,同一个PC使用那些出现频繁的flow
  • Compaction(压缩)
    • dataflow kernel包括不需要的操作
      • 例如memory loads/stores caused by register spilling/function calls
    • Store-Load Bypassing
      • 通过dynamic直接把store-load连接起来
    • Arithmetic Distribution and Compaction
      • flatten the dataflow graphs by distributing and reducing nested arithmetic operations
      • 例如(3 + 4) − (6 + 1)
      • 减少了1000x的graphs
    • Assignment and Zero pruning
      • Assignment between registers对图没用,去掉
      • 0计算,去掉
  • 例子
    • An = 0x28 + load(0x38 + load(−0x8 + load(rsp)))
    • An =0x28+load(0x38+rax)

分析

  • top 200 miss PCs
  • classification
    • 多数的miss address都包括loading from memory
  • complexity(kernel computations)
    • 小workload大部分<10
    • 大workload大部分<100
  • prefetch kernel timeliness

论文笔记: Fully hardware-implemented memristor convolutional neural network

这篇文章是2020年发表在Nature杂志的论文《 Fully hardware-implemented memristor convolutional neural network》,文章作者来自清华的未来芯片技术高精尖创新中心和北京信息科学与技术国家研究中心,第一作者是Peng Yao,通讯作者是吴华强副教授。

这篇文章实现了第一款忆阻器芯片系统来实现MNIST的分类网络。忆阻器芯片具有高产率、高性能和统一的crossbar阵列。同时文章还提出混合训练策略来适应器件的不完美性质。为了提升性能,文章还提出了复制卷积核的方法来增加并行度。

方法

忆阻器crossbar阵列的实现

  • TiN/TaOx/HfOx/TiN
    • 32 conductance states
    • 50ns的pulse时长可以做SET和RESET的closed-loop programming
  • 1T1R的设置
  • crossbar 128 x 16的结构
    • 128 word lines和128 source line
    • 16 bit lines
  • PE,每个PE有2048-cell的忆阻器阵列

网络映射

  • 5层的 CNN 分类MNIST
  • 输入value被编码成脉冲数目
    • 输入3x3的patch
    • 根据量化的bit数决定:8bit的输入被分为8个脉冲输入,结果被shift加到tmp结果上面去
  • 带符号的weight被分配到一对忆阻器上
    • 一个是正数weight
    • 一个是负数weight
    • 15-level conductance weight
      • 4-bit的权重可以取得很好的效果
      • 分配到两个8级忆阻器上
  • bit line输入编码好的脉冲,source line输出分别代表正数和负数的值
  • 不同的channel被放到不同的row上面,可以同时计算他们

混合训练策略

  • 在忆阻器芯片上原生训练整个网络是很复杂的
  • 片外训练的网络受每一个设备的不完美性质影响
    • defective devices缺陷设备
    • parasitic wire resistance and capacitance 线的电阻和电容
    • 将外部的权重转移到忆阻器的电导上去的时候这些因素会blur(污染)权重,降低模型准确率
  • 混合训练策略
    • 只在线训练最后一层FC

复制卷积核增加并行度

  • 不同层速度mismatch
    • 执行CNN卷积运算是耗时的,因为每一层都需要一个个输入sliding window
    • FC层的计算是很快的
  • 复制卷积的kernel到不同的crossbar
    • 但是复制weight是有挑战性的,因为不可预测和无法避免的硬件差异,conductance drift电导漂移和state locking(就是RRAM-cell坏了,不能重新写了)
    • 使用混合训练策略来部分解决这个问题
  • batch的预测,一次用三张图在三个复制后的PE上同时运行

总结

第一次将RRAM-based的加速器实际造出来,还是有很多问题的,但是这些问题暴露出来可以一个个解决,非常好。原来这个也能发Nature,学到了。

论文笔记 DReAM: Dynamic Re-arrangement of Address Mapping to Improve the Performance of DRAMs

这篇是发表在2016年MemSys的论文《DReAM: Dynamic Re-arrangement of Address Mapping to Improve the Performance of DRAMs》,作者是曼彻斯特大学的Mohsen Ghasempour,导师是Mikel Lujan,参与者还有Nvidia研究院。

文章提出了对Address Mapping进行动态重排的方法,统计每个bit的flip ratio,并根据flip ratio调整bit的顺序。另外为了online做re-arrangement,作者提出了一种动态migrate的方法。

方法

Offline

  • 将flip ratio大的bit放在col
  • 将flip ratio小的bit放在row

Online

  • 不动col的bits
  • 只把flip ratio小的bit放在row
  • 250K个Memory访问的窗口大小
  • bit交换超过7%才进行替换

动态migrate

  • 为所有的row增加两个bit的metadata
    • Migration Table:是否被migrate了
    • Swap Table:是否被swap了
  • 同时保存两种映射策略
    • 原来的映射策略PAMS(Predefined Address-Mapping Scheme)
    • 使用的映射策略EAMS(Estimated)
  • 访问的时候,根据row数据在哪里一步步讨论
    • 如果数据在当前位置,直接取。
    • 如果数据在原来位置,取出来,并交换现在的数据和原来的row数据,将当前位置的swap bit设为1,将migrate bit设为1
    • 如果原来的位置已经被swap过了,那么通过PAMS EAMS反推位置在哪,如果被多次swap,这个过程迭代做多次直到找到数据

硬件设计

  • 使用Mutlu论文中的MASA实现多行active来进行Inner Bank的row数据交换
  • 使用I/O bus把所有的bank连起来,传输一个row需要64 DRAM clock/512个CPU clock(有引用)
  • MT和ST两个表使用2MB的存储(64GB内存),可以放在DRAM或者Controller上

实验

  • 用了USIMM和DDR3在CPU上做了实验
  • 数据集为SPEC PARSEC HPC COMMERCIAL BIOBENCH,和20个他们的混合benchmark
  • 发现数据集分为两种
    • 对Mapping敏感
      • 原本有flip ratio比较大的bit被map到了row
    • 对Mapping不敏感
  • offline减少平均5%的execution time
  • online减少平均4.5%的execution time

总结

第一次提出了动态对mapping进行调整的策略,取得的还不错的结果。但这个策略比较heuristic,还有提升空间。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×