首页 > 其他分享 >ARM GPU资源同步 shareable coherent等

ARM GPU资源同步 shareable coherent等

时间:2024-04-01 11:45:06浏览次数:24  
标签:cache ACE Cache coherent shareable GPU CPU

1. 背景介绍

之前在Vulkan内存与资源管理 提到

  • VK_MEMORY_PROPERTY_HOST_COHERENT_BIT

标志位表示CPU的write数据flush给GPU时,无需调用vkFlushMappedMemoryRanges;GPU的write的数据想要对CPU可见时,无需调用vkInvalidateMappedMemoryRanges

解析:

  • CPU的write数据是暂存在CPU cache中,如果要刷给GPU,就需要手动调用vkFlushMappedMemoryRanges使数据从CPU Cache刷到memory中,这样GPU才能看到这个数据。
  • GPU的write数据是暂存在GPU cache中,刷到memory中如果要被CPU看到,则需要invalidate CPU cache,就是让CPU cache中相对应缓存的对应数据失效,只有这样CPU才会从memory中取拿最新的数据;并且可以避免CPU cache中的过时数据被挤到memory中。

 

2. 硬件/协议支持

以上我们是从Vulkan Spec的角度来看待host_coherent的问题。在编码实践中,需要关心以上设置是如何实践的,基本上我们可以分为两种情况,硬件支持(总线支持)和软件支持(software setting workaround)。

以Arm的AMBA总线协议为例:

AMBA总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。协议的主要动机是用一种标准和高效的方法来重用这些跨多个设计的IP

AMBA总线最常见的协议 – APB>AHB>AXI>ACE>CHI,它们的复杂度、性能和设计难度都是递增的。

2.1 协议特点

基本上目前移动端用的是ACE协议或者ACE-Lite协议

ACE协议特点

  • 正确的跨缓存共享(CACHEs)
  • 具有不同特征的器件交互
  • 最大利用缓存数据
  • 高性能低功耗之间的选择

ACE协议提供了系统级一致性框架,系统级设计包括

  • 一致性存储范围
  • 具有一致性扩展的存储系统器件
  • 系统器件之间交互的软件模型

ACE协议实现通过

  • 五个状态缓存模型,指明了Cache line的状态,决定接口可以执行哪些操作
  • 扩展了AXI4接口信号,提供了新的传输类型
  • 扩展了Cache Master与其他Master交互的通道,以便共享数据

 

上图一致性互联系统,即多个具有Cache的Master通过内部互联器件管理来访问主存

 

2.2 Host-Coherent实现方式

硬件支持方式有io-coherent, full-coherent,如果我们想实现硬件支持host-coherent,则需要full-coherent的支持。

因此从这里我们可以看到,host-coherent有两种方式实现:

  1. 硬件总线支持,full-coherent,即各Master之间的cache(CPU,GPU等)通过coherent interconnect来支持,cache之间可以相连
  2. 把对应的这块memory设为 cpu non-cacheable,CPU没有cache之后,即使没有coherent interconnect的总线支持,也可以实现host-coherent,即不用做flush/invalidate CPU cache的操作

 

2.3 Arm Cache其他介绍

Cache line的五种状态:

 

Cache line:

  • invalid、valid:表明Cache line是否在cache中
  • Unique、Shared:表明Cache line存在一个Cache还是多个Cache中
  • Dirty、Clean:表明cache line是否需要更新到主存

 ACE中一些名词的概念

  • Domains
    •   Non-shareable 
    •   Inner Shareable 
    •   Outer Shareable

System:

 

 

参考链接

  • 由浅入深,全面解析AMBA ACE&CHI协议 https://zhuanlan.zhihu.com/p/597903850?utm_id=0
  • ARM memory类型理解 https://zhuanlan.zhihu.com/p/353995383?utm_id=0
  • ARM ACE协议学习 https://www.pianshen.com/article/4284349981/

标签:cache,ACE,Cache,coherent,shareable,GPU,CPU
From: https://www.cnblogs.com/ArsenalfanInECNU/p/18104333

相关文章

  • 实例演示如何使用CCE XGPU虚拟化
    本文分享自华为云社区《CCEXGPU虚拟化的使用》,作者:可以交个朋友。一背景在互联网场景中,用户的AI训练和推理任务对GPU虚拟化有着强烈的诉求。GPU卡作为重要的计算资源不管是在算法训练还是预测上都不可或缺,而对于常见的算法训练业务或智能业务都有往容器迁移演进的趋势,所以如......
  • 深度学习(单机多gpu训练)
    如果一个机器上有多个gpu,可以使用多gpu训练。一般数据量和模型比较大的时候训练速度会有明显的提升,模型和数据比较小的时候反而可能因为数据通信原因导致性能下降。下面是一个简单的例子:importtimeimporttorchimporttorchvision.modelsfromtorchvision.transformsimpo......
  • AMD hipcc 生成各个gpu 微架构汇编语言代码的方法示例
    1,gpuvectorAdd示例为了简化逻辑,故假设vector的size与运行配置的thread个熟正好一样多,比如都是512之类的.1.1源码vectorAdd.hip#include<stdio.h>#include<hip/hip_runtime.h>__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=......
  • Ubuntu下anaconda安装tensorflow-gpu遇到的问题
    创建虚拟环境并激活后```$condacreate-ntensorflowpython=3.9$condaactivatetensorflow```使用下面指令安装tensorflow时显示"Solvingenvironment:failedwithinitialfrozensolve.Retryingwithflexiblesolve."```$condainstalltensorflow==2.6.0``` 换成pip......
  • AI 异构计算机设计原理图:902-基于6U VPX 高带宽PCIe的GPU AI 异构计算机
    基于6UVPX高带宽PCIe的GPUAI异构计算机 一、产品概述   基于6U 6槽VPX高带宽PCIe的GPUAI异构计算机以PCIe总线为架构,通过高带宽的PCIe互联,实现主控计算板、GPU AI板卡,FPGA接口板,存储板的PCIe高带宽互联访问,PCIe支持3.0规范,X8或者X16带宽。主板......
  • DeepLn算力云:超具性价比的GPU租用体验,还~有~~谁~~?
    AI大模型时代到来,对算力需求越来越高,而很多炼丹党的笔记本电脑显存不到8G,甚至还在用集显裸奔,跑一些模型微调任务的时候根本就不行,压根没有办法畅快炼丹。这时你敢信,DeepLn算力云提供的优质算力,竟然比一些高校的校内算力还便宜,同时还稳定易用,真亮瞎了钛合金眼。到底有多便宜......
  • 使用GaLore在本地GPU进行高效的LLM调优
    训练大型语言模型(llm),即使是那些“只有”70亿个参数的模型,也是一项计算密集型的任务。这种水平的训练需要的资源超出了大多数个人爱好者的能力范围。为了弥补这一差距,出现了低秩适应(LoRA)等参数高效方法,可以在消费级gpu上对大量模型进行微调。GaLore是一种新的方法,它不是通过直......
  • 深入解析GPU:图形处理器的技术与应用
    在计算机科学领域中,GPU(GraphicsProcessingUnit,图形处理器)已经不再局限于仅仅处理图形相关的任务。从最初的专注于渲染图像和处理图形效果,到如今在人工智能、科学计算和加速深度学习等领域中扮演着关键角色,GPU已经成为现代计算的重要组成部分。本文将深入探讨GPU的技术原理、发展......
  • 【恒源智享云】在云服务器上安装tensorflow_gpu教程
    在云服务器上安装tensorflow_gpu1.创建实例在恒源智享云中创建新的实例时,可以选择需要使用的框架,并且框架版本和cuda版本、python版本都是对应的:2.新建一个conda虚拟环境condacreate-ntensorflow_gpupython==3.8.0conda指令详见博客:【恒源智享云】conda虚拟环境......
  • 用免费GPU部署自己的stable-diffusion项目(AI生成图片)
    2021年时出现了openAI的DALL,但是不开源。2022年一开年,DALL-E2发布,依然不开源。同年7月,Google公布其Text-to-Image模型Imagen,并且几乎在同一时间段AI图像生成平台Midjourney也进行公测。同年8月,StableDiffusion的发布将AIGC和AI绘画彻底带出了圈。StableDiffusion是......