* 参考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 GPU Gen 9 架构的更多相关文章

  1. InfoQ一波文章:菜鸟核心技术/Intel发布CPU新架构3D堆栈法/BDL/PaddlePaddle/百度第三代Spider/Tera

    菜鸟智慧新物流核心技术全解析   孟靖 阅读数:63192018 年 12 月 14 日 16:00   2018 年天猫双 11 全球狂欢节已正式落下帷幕,最终成交额定格在 2135 亿元,物流订单 ...

  2. Intel CPU平台和架构介绍

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 服务器主板上数据传输流依次为CPU .内存.硬盘和网卡, ...

  3. Intel P6以来核心架构及对应型号、芯片组一览表

    转载或拿走使用请注明出处,谢谢! 注1:5系列以前的芯片组部分可以支持多代处理器(如部分945可以支持65nm.45nm的处理器),5系列开始此现象较少见. 注2:插座兼容性①Socket370接口处 ...

  4. 深入GPU硬件架构及运行机制

    目录 一.导言 1.1 为何要了解GPU? 1.2 内容要点 1.3 带着问题阅读 二.GPU概述 2.1 GPU是什么? 2.2 GPU历史 2.2.1 NV GPU发展史 2.2.2 NV GPU ...

  5. 关于Intel芯片架构的发展史

    ---恢复内容开始---  当你真正的深入去行走在底层的道路上,你就会接触大量的一些貌似懂的概念性名词,比如Intel公司的x86架构,x64等等,又或者是当年的386,486等等,唉,有的时候真的是 ...

  6. [转帖]intel发布会之前,漫谈CPU核心架构:CCX、Ring Bus、Mesh

    intel发布会之前,漫谈CPU核心架构:CCX.Ring Bus.Mesh https://baijiahao.baidu.com/s?id=1607585351741429318&wfr= ...

  7. 剖析虚幻渲染体系(12)- 移动端专题Part 2(GPU架构和机制)

    目录 12.4 移动渲染技术要点 12.4.1 Tile-based (Deferred) Rendering 12.4.2 Hierarchical Tiling 12.4.3 Early-Z 12 ...

  8. Intel为什么做不好手机CPU?

    Intel大名鼎鼎,在CPU界无人不知无人不晓,然而在当前主流的手机CPU市场上却是远远落后日本的ARM公司,这到底是Intel技术不足,还是ARM过于强大呢,今天我们就来探讨一下. 故事要从2006 ...

  9. Intel的AVX2指令集解读

    原文链接:http://blog.csdn.net/vbskj/article/details/38408213 在Intel Sandy Bridge微架构中,Intel引入了256位SIMD扩展A ...

随机推荐

  1. 关于Copy On Write Array List,你会安全使用么

    摘要:JDK中提供了CopyOnWriteArrayList类,简称COW.为了将读取的性能发挥到极致,CopyOnWriteArrayList读取是完全不用加锁的,并且更厉害的是:写入也不会阻塞读取 ...

  2. 刷题记录:Codeforces Round #731 (Div. 3)

    Codeforces Round #731 (Div. 3) 20210803.网址:https://codeforces.com/contest/1547. 感觉这次犯的低级错误有亿点多-- A 一 ...

  3. NOI P序列题 (二分)

    题面 题解 --WQS二分 想到这个这题就完了. 赛时没想到这个你就完了. 时间复杂度 O ( n log ⁡ a ) O(n\log a) O(nloga) 不难发现这题有凸性,可以WQS二分. 我 ...

  4. 一种比css_scoped和css_module更优雅的避免css命名冲突小妙招

    css_scoped 与 css_module 我们知道,简单的class名称容易造成css命名重复,比如你定义一个class: <style> .main { float: left; ...

  5. Springboot连接数据库(解决报错2)

    好家伙, 新建项目,不出意外的话总是会出点意外的 第一天正常运行,第二天就炸了. 1.看报错 百度一下找解决方案 试着将 application.properties中的 com.mysql.jdbc ...

  6. HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置

    目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...

  7. KingbaseES 导入导出blob列数据

    KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...

  8. Andrej Karpathy | 详解神经网络和反向传播(基于 micrograd)

    只要你懂 Python,大概记得高中学过的求导知识,看完这个视频你还不理解反向传播和神经网络核心要点的话,那我就吃鞋:D Andrej Karpathy,前特斯拉 AI 高级总监.曾设计并担任斯坦福深 ...

  9. Python数据科学手册-Pandas:向量化字符串操作、时间序列

    向量化字符串操作 Series 和 Index对象 的str属性. 可以正确的处理缺失值 方法列表 正则表达式. Method Description match() Call re.match() ...

  10. 使用 Auditbeat 模块监控 shell 命令

    使用 Auditbeat 模块监控 shell 命令 Auditbeat Audited 模块可以用来监控所有用户在系统上执行的 shell 命令.在终端用户偶尔才会登录的服务器上,通常需要进行监控. ...