《高性能科学与工程计算》——3.7 习题

简介:

本节书摘来自华章计算机《高性能科学与工程计算》一书中的第3章,第3.7节,作者:(德)Georg Hager Gerhard Wellein 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.7 习题

3.1 非连续访存。如果一个或者多个数组以不定间隔方式读写,3.1节中介绍的代码平衡值和lightspeed应如何修改?对于一个间隔为s的向量操作,可以期望什么样的性能特征?


<a href=https://yqfile.alicdn.com/f4d46bc43e1aa78377925fe95132f34f23f08b1b.png" >

3.2 平衡值的乐趣。计算下面循环内核的代码平衡值,假定所有数组都需要从内存中加载,并且忽略访存延迟的影响(超过计数变量i和j的循环行为是默认的)。
(a) Y(j) = Y(j) + A(i,j) * B(i) (矩阵向量乘)
(b) s = s + A(i) * A(i) (向量范数)
(c) s = s + A(i) * B(i) (标量乘)
(d) s = s + A(i) * B(K(i)) (带间接访问的标量乘)
除数组K存储4字节的整型数外,所有数组都是双精度浮点类型。s是一个双精度标量。根据理论峰值带宽和STREAM实测带宽(MFlop/s),计算这些内核在Xeon 5160处理器单核和1.6节描述的原型向量处理器上的期望性能。Xeon CPU的cache行长度为64个字节。可以假设N足够大从而使数组不能全部加在到cache中。对于(d),请给出在Xeon处理器上最好和最坏的情形。
3.3 性能预测。未来主流微处理器架构的SIMD能力将会得到极大增强。其中一个可能的特征是x86处理器将能够在长度为256位(而不是128位)的寄存器上执行乘法和加法指令,也就是说可同时执行4个双精度浮点数的运算。这将会有效提高峰性能至两倍,如果L1 cache带宽也提高两倍,那么每个时钟周期执行的操作数将从4次提高到8次。假定其他参数如内存带宽和时钟性能保持不变,那么与当前英特尔“Core i7”(有效基于STREAM的机器平衡值为0.12W/F)单核性能相比,评估可以得到的性能提升。假定一个完美的SIMD向量应用程序,其60%的计算时间代码平衡值为0.04 W/F,40%的计算时间代码平衡值为0.5 W/F。如果厂商选择大力提升CPU的SIMD能力,例如,引进更长长度的向量。在这种情况下,什么会成为限制性能的绝对因素。
3.4 优化三维Jacobi算法。概括3.3节介绍的二维Jacobi算法,并考虑三维算法。变换内存循环的长度,你会期望性能特征的哪些改变(图3-6)?参考3.4节介绍的稠密矩阵转置算法的优化,你能否得出消除性能下降的方法?
3.5 重新审视内存循环展开。到目前为止,我们遇到内存循环展开的可能性仅存在于软件流水和SIMD优化中(参见第2章)。内存循环展开在很多情况下是否也能够改进代码平衡值?通过内层循环展开提升Jacobi算子性能需要考虑哪些方面?
3.6 不能循环展开?考虑下面的下三角矩阵向量乘代码:

9309c6e8707c6973860615bbda51bc837056c01c

能否用展开并合并技术作用于外层循环(参见3.5.2节)来减少代码平衡值?尝试编写上面代码的四路展开版本。N没有特定的假设(除了N取值为正),矩阵A下三角(包括对角线)之外的所有元素都不能访问。
3.7 应用程序优化。对于下面的代码,你建议用什么优化策略?尝试修改下面代码,使其能够达到最高性能。

<a href=https://yqfile.alicdn.com/b1c2d26bdb021f7e721220c6bfcae049bee87b12.png" >

对于N没有任何假设。然而,你可以假设这是一段会被频繁调用的子程序,s和v在不同的调用中可能会发生变化,且v的所有元素都为正值。
3.8 TLB的影响。即使最现代的处理器,也没有足够大的快表可以存储驻留在外层cache上所有内存页面的映射。为什么TLB会如此小?这难道不是一个设计中的性能瓶颈吗?使用大页有什么好处?
相关文章
|
12月前
|
机器学习/深度学习 人工智能 算法
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题(2)
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题
178 0
|
12月前
|
机器学习/深度学习 人工智能 算法
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题(1)
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题
196 0
|
12月前
|
机器学习/深度学习 人工智能 算法
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
王怀民院士:图灵计算模型仍是最深刻的理论基础,是新科学基础的基点
《模式识别原理及工程应用》——2.2 贝叶斯决策理论
本节书摘来自华章计算机《模式识别原理及工程应用》一书中的第2章,第2.2节,作者 周丽芳 李伟生 黄颖,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1836 0
|
存储 算法 C++
《高性能科学与工程计算》—— 导读
当1941年构建世界上第一台全自动可编程并具备二进制浮点运算能力的计算机时[H129],Konrad Zuse成功地预见了这种革命性设备不仅只应用于科学和工程领域,还将对生活的各个方面产生深远影响[H130]。
1948 0