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

简介:

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

2.6 习题

2.1 分支的危险。考虑下面的基准代码:


18f5b601749496a01edef99414d022e85503d07b


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

相对于标准向量三元组,请分析条件分支在下面情况下对性能的影响。数组C的值初始化为:a)正值、b)负值、c)[-1,1]的任意值,并分别存放在L1 cache、L2 cache和内存中。
2.2 递归能SIMD向量化吗?在1.2.3节我们通过下面循环代码学习了循环体依赖对流水线的影响:


9d8c4379384b3e823dbc390faff8afad58963041

如果A是一个单精度浮点数数组,当offset取何值时,该循环可被SIMD向量化(如图1-8所示)。
2.3 栈上的延迟构造。在2.5.2节的延迟构造例子中,如果我们使用标准C的double数组,而不是使用std::vector。数组被声明时的区别在哪里?
2.4 快速赋值。在2.5.2节静态构造例子中,我们指出静态对象std::vector<>只有在长度为常量时才具有优势。如果长度可变,赋值操作会导致内存的重新分配,真的是这样吗?

相关文章
|
7月前
|
算法 自然语言处理 双11
算法设计_综合练习_编程题
算法设计_综合练习_编程题
37 0
|
自然语言处理 算法
算法设计_综合练习_编程题(上)
算法设计_综合练习_编程题
112 0
|
算法
算法设计_综合练习_编程题(中)
算法设计_综合练习_编程题
95 0
|
算法 双11
算法设计_综合练习_编程题(下)
算法设计_综合练习_编程题
98 0
|
机器学习/深度学习 人工智能 算法
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题(2)
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题
259 0
|
机器学习/深度学习 人工智能 算法
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题(1)
鄂维南:从数学角度,理解机器学习的“黑魔法”,并应用于更广泛的科学问题
324 0
|
存储 算法 C++
《高性能科学与工程计算》—— 导读
当1941年构建世界上第一台全自动可编程并具备二进制浮点运算能力的计算机时[H129],Konrad Zuse成功地预见了这种革命性设备不仅只应用于科学和工程领域,还将对生活的各个方面产生深远影响[H130]。
1994 0