Intel GPU Gen 9 架构
2023-03-20 15:33:45 时间
* 参考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.
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十