一、编程模型
- 主机(host)-设备(device)模型:xxxx编程模型使开发人员能够在包含cpu和gpu的异构计算机系统上编写和执行程序;
- 核函数:从主机启动并在gpu设备上执行的函数成为核函数,是xxxx编程模型的关键组件,在设备内从空间中运行;
- 线程层次结构:xxxx采用Grid-Workgroup-Thread层次结构来组织若干个gpu线程。
二、执行模型
- 计算引擎:16个PE,每个256个Thread, 共16*256=4096个;
- 线程束:xxxx采用同SMIT来管理256个线程组成的组,这些组被称为线程束,是调度单元。线程束在可用的PE上执行调度由xxxx运行时控制。
- 工作负载分配:当使用kernal_name<<<gride_dimension, workgroup_demention>>>启动内核时,包含开发者指定线程数的线程块会按照线程束分配到可用的PE上执行:(1)若块中的线程束不超过256个(块维度<=256),xxxx会将所有的线程块的线程调度到同一个PE上,并在完成计算后释放;(2)若256<d<=1024,xxxx会均匀分配在D/256(向上取整)个PE上;(3)