type
status
date
slug
summary
tags
category
icon
password
目前还不知道具体的型号,随便看下大概的信息
集群使用
架构信息 Intel® Iris® Xe GPU Architecture
比赛使用的可能是 Intel Arctic Sound(Xe-HP)
实体图
架构信息
EU → Xe Core
相较于低功耗的Xe-LP,HPC、HPG使用的是类似于LP dual subslice的Xe core
- 基础信息
- 8 vector and 8 matrix engines
- vector engine: 512 bit FP32 SIMD16 (FMA)
- 512 FP16
- 256 FP32
- 256 FP64 operations/cycle
- matrix engine: 4096 bit
- 8192 int8
- 4096 FP16/BF16
- 2048 FP32 operations/cycle
- 512KB L1 cache/SLM
- 512B/cycle load/store
这里原文说的是 16 FP32 SIMD 8 vector engines,128个FMA,对应的就是256个operation/cycle
值得注意的是,FP32和FP64是对等的
Xe Slice
- 16 * Xe core
- 512KB * 16 = 8M L1
- 16 * ray tracing units
- 1 hardware context
Xe Stack
- 4 * Xe-slice
- 64 * Xe-cores
- 64 ray tracing units
- 4 hardware contexts
- 4 HBM2e controllers
- 1 media engine
- 8 Xe-Link high speed coherent fabric
- shared L2 cache
Xe-HPC 2-Stack Ponte Vecchio GPU
2个stack
- 8 slices
- 28 Xe-cores
- 128 ray tracing units
- 8 hardware contexts
- 8 HBM2e controllers
- 16 Xe-Links
Xe-HPG GPU
HPG则包括了16 vector engines和16 matrix engines,但减少为256bit, 8FP32
ATS-P 参数说明
相对于PVC架构,可以参考核心参数,但cache等规格不同
每个tail 30 Xe core,480 EU (VE),2个tail组成960EU(VE)
480/30=16,ATS-P的Core包含了16个VE,相对的每个VE的平均缓存减少了
计算FP64单元数:
ATS-P 2Tail clinfo 信息 THREAD
MEMORY
Ponte Vecchio 参数对比
ㅤ | Xe Stack | Xe Slice | Xe Core | Xe VE | FMA | operation |
ㅤ | 2 | 2 * 4 = 8 | 8 * 16 = 128 | 128 * 8 = 1024 | 1024 * 16 SIMD = 16384 | 32768 |
执行模型概述
1个host - 多个compute device - 多个GPU Compute Engines(EU/VE)
compute device带有独立的缓存和内存等部件
application包括运行在host上的部分和提交到VE的kernel
由kernel function组成contest发送到device执行,其中包括了内存索引信息、变量参数
device 可以有自己的command queue以执行不同的任务
是否就是通过不同的command来实现同一套代码运行在不同的平台
一个kernel function —— work item
多个执行中的work item 集合成work group,compute device 通过work group管理 item,感觉类似于cuda 的index通过 global id或group ID+ local ID来定义
work group:runs the same kernel on several unit items in a group
SIMD就是VE同时执行多个item
类似barriers 这样的函数apply到work group中的每一个work-item
Compiler generates SIMD code to map several work-items to be executed simultaneously within a given hardware thread.
SYCL Thread Mapping
SYCL
SYCL也是一个大坑,是一套编写可移植的编程模型,intel在SYCL 和 LLVM的基础上开发的DPC++,遵守C++17标准,具有便捷的可移植性
SYCL 到 Xe GPU
3维 work-item,再组织为thread group称为work-group
work-group中的thread(item)进一步被划分vector group称为sub-group
Work-item
A work-item represents one of a collection of parallel executions of a kernel.
代表核函数中的一个线程,每个线程具有相同的“指令队列”
Sub-group
A sub-group represents a short range of consecutive work-items that are processed together as a SIMD vector of length 8, 16, 32, or a multiple of the native vector length of a CPU with Intel® UHD Graphics.
由于硬件设计,需要以SIMD的方式同时执行多个thread,因此有sub group概念以组织,同一个sub group的线程会被分配到同一个硬件单元VE上执行
group被划分为多个sub gorup以映射硬件
Work-group
A work-group is a 1-, 2-, or 3-dimensional set of threads within the thread hierarchy. In SYCL, synchronization across work-items is only possible with barriers for the work-items within the same work-group.
一个核函数所有thread(work-item)的集合,在行为和硬件映射上相似,因此能有有item间的sync,不同group(核函数)间只能整体sync
nd_range
代表number of dimension
通常来说,可以将dimension设置得类似于内存排布以方便理解线程的行为
dimension 2是sub-group对应的dimension
线程索引
一个小块是一个work item,认为是一个oeration,一个group计算时分配个一个xe EU??
1个VE每个时钟周期能执行32个FP64
如果这里正确,则Xe-HP 的core 也为8个VE
更正:一个sub group 分配一个VE
kernel内 线程同步方式
- ``mem_fence`` inserts a memory fence on global and local memory access across all work-items in a work-group.
- ``barrier`` inserts a memory fence and blocks the execution of all work-items within the work-group until all work-items have reached its location.
⭐work-group到Xe core映射关系 与 占用率
官网上有对应Xe-LP的架构表,类似的写出Xe-HP
1个tail | XVE | thread | Operation | max work group size |
Xe-core | 8 ? 16 | 8 * 16 = 128 | 128 * 2 = 256 ? | 512 ? 1024 |
total | 16 * 30 = 480 | 128 * 30 = 3840 | 256 * 30 = 7680 | 512 ? 1024 |
Ponte Vecchio
Xe Stack | Xe Slice | Xe Core | Xe VE | FMA | operation |
2 | 2 * 4 = 8 | 8 * 16 = 128 | 128 * 8 = 1024 | 1024 * 16 SIMD = 16384 | 32768 |
Arctic Sound (HP)
Xe Stack → Tail | Xe Core | Xe VE | FMA | operation | |
2 | 2 * 30 = 60 | ||||
共享L2 cache
内存控制器
交换总线等 | 增加了ray tracing unit,但对于 HP架构尚不明晰 | 共享load/store
共享L1/SLM cache | ㅤ | ㅤ | ㅤ |
ㅤ | ㅤ | ㅤ | ㅤ | ㅤ | ㅤ |
服务器上有2块此GPU,同样性能水平的有AMD MI250,45.3TFLOPs,其对应的内存带宽是3276.8GB/s,支持ECC,位宽8192bit,频率1.6GHz
混合了thread和SIMD的概念,但每个thread每个周期能进行FMA,因此是2个operation
每个Xe core 16个EU
7个thread context(压入7个work group)
第二个work group 分配给第二个Xe core,共6个
这是通过减少dispatch次数来提高效率的???
- Author:NotionNext
- URL:https://tangly1024.com/article/intel%20%E6%8E%A8%E5%87%BA%E7%9A%84Xe%20GPU%20%E6%9E%B6%E6%9E%84%E5%92%8C%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts