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

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

3天内不再提示

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

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

GPGPU体系结构优化方向 [下]

继续之前的文章,我们介绍GPGPU的优化方向:1)增强GPGPU的可编程性 2)CPU-GPU异构架构

增强GPGPU的可编程性

增强GPGPU的可编程性可以增加GPGPU相对其他平台,比如FPGA的优势。主要有以下三个方向:

1.Coherence and Consistency model

2.Transactional Memory

3.Memory Management

Coherence and Consistency model

目前的GPU缺乏cache一致性,需要diable 线程private的L1 cache,或者采用基于软件的bulk coherence决策(比如在同步点,flush掉所有的private L1 cache。

不同于CPU的一致性模型,GPU存在大量的线程,如果也按照CPU的方式维护一致性,那么代价很大。文章【Cache Coherence for GPU Architectures】通过使用全局同步计数器来self-invalidate cache block,不需要显性的信息来维护一致性,称为Temporal Coherence(TC)。

wKgaomcF5YKAEuVYAADdcbf8PKE778.jpg

【Exploring Memory Consistency for Massively-Threaded Throughput-Oriented Processors】分析了硬件一致性模型,通过比较了sequential consistency, total store order and relaxed memory model,他们发现硬件一致性在GPU上的代价很小,可以维护strongly ordered,而只需要很小的代价。

Transactional memory

GPU中,跨线程的通信是通过在同一个thread block内的thread的scratch-pad memory进行的。最新的GPU也可以使不同的线程通过全局的原子操作来访问进行全局thread block的通信。

原子操作可以用于实现软件同步原语,比如fine-grain lock,可以简化编程,但是lock-based的同步容易导致死锁。KILO TM (KILO TM: Hardware Transactional Memory for GPU Architecture) 不依赖cache一致性或者原子操作,而是通过细粒度的基于值的方法检测冲突。

wKgZomcF5YKAGz5iAAFjUpTFaXk707.jpg

Memory management

wKgZomcF5YKAFiirAAKb9oyNOCw770.jpg

GPUdmmGPUdmm: A High-performance andMemory-Oblivious GPU ArchitectureUsing Dynamic Memory Management通过将GPU的内存看作是CPU的内存的缓存,来进行动态的内存管理。有以下优势:

简化了软件编程对memory的管理

给编程人员一个CPU的memory编程视图

将GPU执行和CPU-GPU数据传输overlap

【Architectural Support for Address Translation on GPUs】通过基于GPU的特性修改了传统的TLB和PTW来减少对虚拟地址物理地址转换的overhead。

wKgZomcF5YKAco85AABKEGxbpjk257.jpg

通过在GPGPU内部支持virtual-physical address的转换可以支持unified memory,文章的作者通过比较与CPU TLB和page table walker的不同,主要进行了以下改进:

warp内的线程公用TLB,而不是每个线程独占一个

地址coaleacing之后再进行虚实地址转换

提出了page divergence的观点,即一个warp内只需要3个读口即可满足常用的情况

TLB采用非阻塞tlb

Cache Conscious Warp Scheduling

wKgaomcF5YKAT6r2AAB-qpdG8u4453.jpg

CPU-GPU与异构架构

CPU-GPU集成

【Redefining the role of the CPU in the era of CPU–GPU integration】文章展示了在将代码部分CPU执行,部分卸载到GPU上执行之后,在CPU执行的代码和传统的CPU优化过的代码完全不同。

wKgaomcF5YKAdXxKAAE8cpRrq8E960.jpg

他们展示了剩余给CPU的代码有更低的指令层并行性,更复杂的load store操作,更难进行预取和分支预测。并且剩下的顺序执行的代码不会从SIMD指令获益,也不会从更多的CPU核数上受益,因为线程并行和数据并行都被卸载到GPU上了。

CPU-GPU 编程

【Heterogeneous system coherence for integrated CPU–GPU system】提出以前的基于目录一致性的CPU-GPU的颗粒度是64Byte,可以将其增加到1KB。因为很多GPU程序是有高度的spatial locality的,大多数的请求是不需要访问region directory的。

利用异构架构

【CPU-Assisted GPGPU on Fused CPU-GPU Architectures】提出可以通过在CPU将程序卸载到GPU之后,在编译器的辅助下另起一个线程,这个线程用于专门给GPU预取数据,因为CPU有更高的时钟频率,因此预取提高l3 cache的命中率,可以取得很好的效果。

wKgaomcF5YKAf2B4AAA0fACVCQk307.jpg

Shared resources management

因为CPU和GPU越来越趋近于共享memory资源,包括last level cache, 片上网络和内存。因为GPU可以产生大量的内存请求,可以竞争掉CPU对内存的请求。主要有两种方式来减少CPU和GPU之间的干扰:

application-aware resource managerment

throttling-based management

【Staged memory scheduling: Achieving high performance and scability in heterogeneous systems】提出了staged memory scheduling策略。在内存的层面对cpu gpu的mem req进行平衡。

wKgZomcF5YKACRuIAABysh6CQkY498.jpg

第一个stage是基于row-buffer locality,第二个stage通过平衡 “偏向CPU的shortest job first调度策略” 和 “偏向GPU的round robin调度策略”来保证CPU和GPU的平衡。 【TAP: A TLP-Aware Cache Management Policy for a CPU-GPU Heterogeneous】发现并不是所有的GPU应用都是对latency不敏感,也存在对cache 敏感,对latency敏感的应用,并且发现GPU core会通常比CPU core更频繁地访问Cache。他们引入了cache block lifetime normalization策略来使得对于CPU和GPU,cache都有相似的lifetime。 【Managing GPU concurrency in heterogeneous architectures】通过增加或减少GPU的active warp,来减少其与CPU的竞争。

wKgaomcF5YKAWtzpAAHENaUAMzQ680.jpg

总结:

增强GPU的可编程性

1. Coherence and Consistency model 通过使用计数器,避免显示的维护cache一致性,self-invalidate。另外硬件维护strongly ordered内存一致性,代价也可以很小。

2. Transactional Memory 可以使用基于value检测冲突。

3. Memory Management 可以将GPU的memory视为CPU memory的cache。另外也有对虚实转换TLB和page table walker的优化工作。

CPU-GPU异构架构

1.CPU的代码特性在将并行性高的代码offload到GPU之后完全不同

2.同样是对CPU,GPU一致性的优化,将颗粒度从64B增加到1KB

3.利用异构架构,CPU执行对GPU数据的预取工作

4. 针对CPU和GPU对资源竞争的平衡,可以平衡对memory,cache的访问,也可以调节GPU的active warp。

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

    关注

    1625

    文章

    21642

    浏览量

    601397
  • 编程
    +关注

    关注

    88

    文章

    3577

    浏览量

    93545
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19636
  • GPGPU
    +关注

    关注

    0

    文章

    29

    浏览量

    4880

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

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

收藏 人收藏

    评论

    相关推荐

    ARM SOC体系结构

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

    ARM体系结构是怎样的?

    ARM体系结构是怎样的?
    发表于 11-05 06:40

    嵌入式微处理器体系结构

    目录一、嵌入式微处理器体系结构1、冯诺依曼体系结构2、哈弗体系结构二、嵌入式系统的硬件结构1、嵌入式微控制器MCU(CPU+片内内存+片内外
    发表于 11-08 06:57

    Microarchitecture指令集体系结构

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

    Arm的DRTM体系结构规范

    的原理和术语,但也包含了显著的差异。 本规范的结构如下: •第2节,DRTM体系结构概述,概述了DRTM,并介绍了该体系结构如何将DRTM映射到基于Arm的系统。本节介绍了与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 9803次阅读

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

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

    ARM体系结构与程序设计

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

    ARM体系结构(2).PPT课件

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

    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次下载

    Oracle体系结构讲解

    Oracle体系结构讲解(开关电源技术的节能意义)-该文档为Oracle体系结构讲解文档,是一份十分不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,,,,,
    发表于 09-27 10:27 3次下载
    Oracle<b class='flag-5'>体系结构</b>讲解

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

    继续上文GPGPU体系结构优化方向 [上],介绍提高并行度和优化流水线的方向
    的头像 发表于 10-09 10:03 197次阅读
    <b class='flag-5'>GPGPU</b><b class='flag-5'>体系结构</b><b class='flag-5'>优化</b><b class='flag-5'>方向</b>(1)