0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPGPU体系结构优化方向(1)

处理器与AI芯片 来源:处理器与AI芯片 2024-10-09 10:03 次阅读

继续上文GPGPU体系结构优化方向 [上],介绍提高并行度和优化流水线的方向。

不同的workload因为存在不同的input size和对寄存器以及memory的需要,有时会导致只有少量的活跃thread block,这降低了执行单元的利用率。因此可以通过同时运行多个workload,增加并行度来提高利用率。另一种方法则是利用scalar opportunity以及运行的warp之间的value similarity。

具体的子方向:

减少资源碎片化增加并行度

Unifying Primary Cache, Scratch and Register File Memory in a Throughput processor提出不同的workload对资源的需求不同,因此可以动态的对不同workload的资源进行划分。

wKgaomcF5JOAaZHTAAEcjHYtep8333.png

Shared Memory Multiplexing: A Novel Way to ImproveGPGPU Throughput注意到在一个thread block内的warp会在不同的时间点结束,此时,即使是较早完成的warp占用的资源也不会释放,这导致了资源的低效利用,此时应该可以launch新的warp。

他们将资源的低效利用划分为temporal和spatial:

temporal低效是因为warp的不同时间结束导致的

spatial的低效则是因为没有足够的资源launch新的warp

他们提出了在资源不够launch一个新的thread block时,只launch部分thread block的方法。GPU Multitaksing

多任务同时在GPU上执行

可以有效的提高GPU的利用率。

有助于操作系统调用GPU时,对GPU的虚拟化以及在云上deploy GPU

Improving GPGPU Concurrency with Elastic Kernels将task不能够进行并行化的原因分成了几类:

Serialization due to Lack of Resources

Serialization due to Inter-stream Scheduling

Serialization due to Memory Transfers

Serialization in the CUDA API

Serialization in the Implementation

他们观察到如果bfs只占用了部分资源,但是fft和cutcp占用了全部资源,那么即使bfs较晚进入queue中,也可以不按照fifo的调度顺序,将bfs优先调度,空置的资源同时执行cutcp,这样提高了并行度。

wKgZomcF5JeAZhCoAAAk1tfPH1Y192.jpg

此外,观察到GPU的DMA只能在一个时间段内进行拷贝到GPU和拷出GPU中的一种。如果下图中的bfs等到数据的拷贝,但是此时lbm正在将数据拷出,会导致bfs的等待,因此可以将DMA的任务切片,提高并行度。

wKgaomcF5JeAY6qGAAAqiR68Wb4360.jpg

此外,Increasing GPU throughput using kernel interleaved thread block scheduling等也发现可以将memory intensive和compute intensive的workloads混合调度,这样提高资源的利用效率。

在调度workloads时,也需要注意到workload的优先级,如果优先级较高的workload等待时间较长,那么应当切换到优先级高的workload。Enabling preemptive multiprogramming on GPUs提出了两种抢占的方式,context swtiching和draning。

wKgZomcF5LeAKbKYAACvxOkV70U484.jpg

Chimera: Collaborative Preemptionfor Multitasking on a Shared GPU提出了被抢占的workload可以不需要保存上下文,直接放弃,在获得资源后重新从头开始执行。

利用scalar and value similarity opprotunities

Characterizing Scalar Opportunities inGPGPU Applications提出了 scalar opportunity,即在各个threads中同时对相同的数据执行相同的计算,也就得到相同的结果,写回相同的值。AMD将这类计算单独放在GPU core中的标量单元中进行计算。

“We define a scalar opportunity as a SIMD instructionoperating on the same data in all of its active threads. Atypical example of scalar opportunities is loading a constantvalue when each active thread loads the same value frommemory and then stores it in the corresponding component ofthe destination vector register. Finally those components storethe same value.”

基于这个的工作主要有几类:

检测方法:硬件或者软件编译器

执行方法:单独的标量单元或者单独使用一个core计算

专门的寄存器或者和其他指令共用寄存器

取址译码执行和其他指令的资源共享或者单独设计

支持的指令类型

Improving execution pipeling

现代 GPU为了有效地共享资源,在 GPU 管道中插入了buffering和collisionavoidance stage,从而增加指令的读后写 (RAW) 延迟。通常大家认为GPU通过warp的调度可以隐藏RAW延迟,因而GPU没有设计data forward networking。但是Exploiting GPUPeak-power and Performance Tradeoffs through Reduced Effective Pipeline Latency观察到许多 GPGPU 应用程序没有足够的活动线程来准备发出指令来隐藏这些 RAW 延迟。

因此他们使用most recent result forwarding(MORF)来实现data forwarding,同时相对于传统的data forwarding,降低了功耗。

wKgaomcF5MCAEupeAACy72_5q1c355.jpg

Warped-Preexecution: A GPU Pre-execution Approachfor Improving Latency Hiding文章提出在warp的线程进入长期等待的idle状态时,可以进入P-mode。在P-mode模式下,识别出程序中后续的不存在依赖关系的指令,先执行后续的指令,也即实现了乱序执行。

wKgZomcF5L-AaUFxAADzixioPS8150.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119981
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4700

    浏览量

    128677
  • 流水线
    +关注

    关注

    0

    文章

    119

    浏览量

    25611
  • GPGPU
    +关注

    关注

    0

    文章

    29

    浏览量

    4890

原文标题:GPGPU体系结构优化方向 [中]

文章出处:【微信号:处理器与AI芯片,微信公众号:处理器与AI芯片】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM体系结构和编程

    本帖最后由 eehome 于 2013-1-5 09:47 编辑 ARM体系结构和编程
    发表于 12-04 03:35

    ARM嵌入式体系结构与接口技术.ARM SoC体系结构(中文版)

    ARM嵌入式体系结构与接口技术.pdf{:1:}{:1:}{:1:}ARM SoC体系结构(中文版).pd
    发表于 03-23 16:04

    ARM SOC体系结构

    ARMSOC 体系结构
    发表于 11-22 10:54

    嵌入式微处理器体系结构

    目录一、嵌入式微处理器体系结构1、冯诺依曼体系结构2、哈弗体系结构二、嵌入式系统的硬件结构1、嵌
    发表于 11-08 06:57

    Microarchitecture指令集体系结构

    第二章 ARM微处理器概述与编程模型ARM体系结构及其发展历史处理器的体系结构处理器微架构 Microarchitecture指令集体系结构 Architecture几种常见的指令集X86Inter
    发表于 12-14 07:13

    Arm的DRTM体系结构规范

    本规范定义了基于Arm A配置文件体系结构的处理器的动态测量信任根(DRTM)体系结构。本规范基于TCG D-RTM体系结构[4]的概念,但作为一个独立的独立文档发挥作用。它使用了TCG体系结
    发表于 08-08 07:45

    ARM体系结构与编程

    ARM体系结构与编程
    发表于 02-11 09:35 161次下载
    ARM<b class='flag-5'>体系结构</b>与编程

    LTE体系结构

    LTE体系结构 LTE体系结构可以借助SAE 体系结构来做详细描述。在SAE 体系结构中,RNC部分功能、GGSN、SGSN 节点将被融合为一个新的节点,
    发表于 06-16 13:09 9809次阅读

    网络体系结构,什么是网络体系结构

    网络体系结构,什么是网络体系结构 通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能协同工作实现信息交换和资源共享
    发表于 04-06 16:30 1691次阅读

    ARM体系结构与程序设计

    《ARM体系结构与程序设计》是ARM体系结构与程序设计的一本实用指导书籍,通过案例详细介绍了ARM体系结构与程序设计,案例中的程序都取自实际的项目,且对程序有详细注解。
    发表于 10-27 16:37 2353次阅读

    ARM体系结构(1)PPT课件

    ARM体系结构(1),有需要的朋友下来看看。
    发表于 01-08 14:46 0次下载

    XScale体系结构及编译优化问题

    XScale是一款具有业界领先高性能特性的ARM兼容嵌入式微处理器构架被应用处理 能力要求很高的嵌入式应用领域如PDA、高带宽网络交换等。本文分析了RISC、 ARM和XScale体系结构的特点
    发表于 04-18 10:28 0次下载

    软件体系结构的分析

    软件系统因具有节点众多、节点间联系复杂、随时间演化、自组织临界等特性可将其视为复杂系统。在软件安全领域,对软件体系结构的分析一直是研究的重点。软件体系结构具有自身的脆性,这体现在软件系统的运行过程
    发表于 11-24 10:34 15次下载
    软件<b class='flag-5'>体系结构</b>的分析

    基于DoDAF的卫星应用信息链体系结构

    针对侦察卫星应用信息链体系结构建模问题,提出了基于DoDAF (department of defense architect framework)的体系结构描述方法和基于ABM (activity
    发表于 01-10 16:58 1次下载

    GPGPU体系结构优化方向(2)

    目前的GPU缺乏cache一致性,需要diable 线程private的L1 cache,或者采用基于软件的bulk coherence决策(比如在同步点,flush掉所有的private L1 cache。
    的头像 发表于 10-09 10:06 195次阅读
    <b class='flag-5'>GPGPU</b><b class='flag-5'>体系结构</b><b class='flag-5'>优化</b><b class='flag-5'>方向</b>(2)