首页 > 其他分享 >Intel GPU Gen 9 架构

Intel GPU Gen 9 架构

时间:2022-11-06 22:04:25浏览次数:86  
标签:架构 Intel 指令 L3 EU GPU Gen

* 参考spec:the-compute-architecture-of-intel-processor-graphics-gen9-v1d0.pdf 

SOC 架构

     Gen9 架构是早期用在igpu 中的,igpu 集成在在整个cpu 的base die上。 Gen 9 是一个非常经典的架构,其中的设计思路一直沿用到Gen11 Gen12.5. 即使是最近两年Intel 新发布的dgpu, SG1( 内部代号DG1),ARC 系列显卡(内部代号DG2,2022), Flex GPU 系列(内部代号ATSM).其核心架构思路都是承接于Gen9. 无非是增加了更多的EU (执行单元)或者一些media ,render的硬件。

  •    Architecture components layout for an Intel® Core™ i7 processor 6700K for desktop systems. 

  •  Intel Processor Graphics Gen9 为igpu的架构。 接下里从大到小介绍。

EU:

     EU 是最终指令执行的单元,但EU 不是最小的执行颗粒度。EU 执行SIMD 指令,也就是单指令多数据。

  • 一个EU 包含7 个线程(Threads),这个线程是物理层面上的,不是软件模拟出来的。每个threads 对应一系列的 128 SIMD-8 32bit 的寄存器,俗称GRF. 这样可以保证每个thread 都有单独取数据执行的能力。
  • 但是一个EU 取数执行的过程中,单个时钟周期只能并发四个指令, 也就是对应两个FPU 单元,Send 以及 分支预测。 FPU 相当于ALU (这是最终计算数据的地方),这里支持SIMD. 可以同时计算多个GRF 中的数据。

Subslice

  • 8 个EUs 组成一个Subslice, 在这个Sublice 中有 local Thread Dispather 和 指令cache (Instruction Cache), 用于把把指令丢到空闲的EU 上去执行
  • 包含一个Sampler (两级缓存结构 L1 L2 cache), Sampler 主要存储的是 图片数据,当需要EU 进行渲染图片数据时 (平移,裁剪,旋转,映射),Eu 的send 会发出取数据的指令,由于图片数据需要快速导入,如果直接从L3 cache 读取就太慢了,sampler 主要缓存需要渲染的图像。
  • Data Port 负责从L3 cache 读取数据。

Slice:

  • 每个slice 包含8 个 Subslices , 共计24 个EUs ,还有一个很大的L3 Data Cache。
  • 同样也包含global Thread Dispatcher 和  instruction Cache, 用来分配任务以及缓存指令
  • Fixed function Units 这里主要是用于Render (图片渲染)的硬件电路,Render 也是一个很大的topic,需要单独介绍
  • L3 Cache 用于存储GDDR 的数据,在Gen9 中, SLM (shared Local Memory)是L3 中的一部分, 在最新的Gen12 中,SLM 与L3 分开,有单独的SLM 存储单元 

 

Memory 以及与Opencl 的内存模型关系

  • GPU 一般通过GTI 硬件接口与外部存储相连接, 当然在最新的GPU 架构中也出现了HBM 传输结构,实现GDDR 与GPU 的高速互联

  • PE1 PE M 是对应每个workitm ,应该是对应一个EU 的每一个thread。 这里的Private memory 就是每个Thread 的GRF.

标签:架构,Intel,指令,L3,EU,GPU,Gen
From: https://www.cnblogs.com/aalan/p/16864274.html

相关文章

  • grafana agent metrics 使用简单使用
    grafanaagent的能力还是比较强大的,支持log,metrics,trace,以下简单说明下简单模式只包含了metrics,不包含集成模式核心点是metrics配置,包含了remotewrite以及静态或者......
  • mall学习教程笔记--Mybatis generator和Swagger
    github学习项目--mall学习教程https://www.macrozheng.com/mall/catalog/mall_catalog.htmlMybatisgenerator配置文件介绍MyBatis的代码生成器,可以根据数据库生成mode......
  • CodeForces 1747E List Generation
    CF传送门洛谷传送门考虑将问题抽象成:左上角为\((0,0)\)、右下角为\((n,m)\)的网格图,求所有满足至少有一条只向下或向右走的路径经过点集内所有点的的不同的点集大......
  • 10.1 Heterogeneous & Knowledge Graph Embedding
    10.1Heterogeneous&KnowledgeGraphEmbeddingRecap:ASingleGNNLayer回顾一个单层GNN层应该包括:(1)Message\(\mathbf{m}_{u}^{(l)}=\operatorname{MSG}^{(......
  • dbhaver找不到树元素“/General/Scripts/Script-5.sql”。
    正常情况下对应的dbhaver的安装是没有问题的。但是安装出现如下错误:baidu.com找不到树元素“/General/Scripts/Script-5.sql”。解决方案如下:​到workspace6目录下,重命名wo......
  • Satellite Link Budget---INTELSAT
    SatelliteLinkBudget---INTELSAT                   ============== End  ......
  • spring 6.0 构建报错 找不到符号 InstrumentationSavingAgent
    解决:将spring-context.​​gradle​​文件的​​下面这一行optional(project(":spring-instrument"))修改为api(project(":spring-instrument"))​​......
  • 为什么精通webgl、webgpu的人很少?
    为什么精通webgl、webgpu的人很少? 如题,更不用提webassembly了,是因为需求不够还是难度太大?显示全部 ​关注者153被浏览260,594关注问......
  • Docker容器中使用GPU
    背景容器封装了应用程序的依赖项,以提供可重复和可靠的应用程序和服务执行,而无需整个虚拟机的开销。如果您曾经花了一天的时间为一个科学或深度学习应用程序提供一个包含大......
  • 在Kubernetes(k8s)中使用GPU
    介绍Kubernetes支持对节点上的AMD和NVIDIAGPU(图形处理单元)进行管理,目前处于实验状态。修改docker配置文件root@hello:~#cat/etc/docker/daemon.json{"default-r......