45、组件优化组合的自适应离线调优

组件优化组合的自适应离线调优

1. 混合组合示例

以矩阵 - 矩阵乘法为例,有两种实现变体:著名的顺序版本和使用固定 4 个线程的 pthreads 并行版本。
- 离线训练阶段 :每个上下文实例执行一次来测量性能数据。
- 动态选择的组合代码执行时 :每个上下文实例平均运行 10 次来计算性能。

使用的硬件是具有 16 个 CPU 的多核系统,每个 CPU 是运行在 2.27GHz 且具有 8192KB 缓存的 Intel(R) Xeon(R) CPU E5520,操作系统为 Linux 3.0 - ARCH,编译器是 gcc 4.6.1。

由于资源(这里是 OpenMP 的线程数)固定,上下文实例是一个三元组,由定义操作数矩阵维度的三个问题大小组成。训练空间选择为 [1 : 1000, 1 : 1000, 1 : 1000] ,包含 10⁹ 个可能的上下文实例(输入大小)。使用八叉树作为树数据结构,同时沿三个维度对 subspace 进行细化,树的截断深度设置为 3。

设置完成后,离线训练时间(即包括在目标系统上进行测量的树构建时间)为 228 秒,构建的树有 41 个节点,自适应树细化主要针对问题大小较小的 subspace。通过将运行时的组合代码与每个上下文的实际最快组件进行比较(见相关图),发现树查找的动态选择精度为 92%,且执行动态选择的开销可以忽略不计。

2. 选择过程

2.1 初始化

读取训练阶段生成的调度树文件,并添加一个翻译表,将每个实现变体的符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值