社区
Linux/Unix社区
帖子详情
《深入理解计算机系统》疑问
iampengxiaojin
2011-08-19 09:40:16
请问各位大侠:
最近在看《深入理解计算机系统》第6章存储器层次结构,在编写高速缓存友好的代码那儿有看到这样的总结,步长为1的引用模式是好的,因为存储器层次结构中所有层次上的缓存都是将数据存储为连续的块,但是在第五章优化程序性能那一章提到为了考虑到流水线化的能力可在循环内使用多次展开,多路并行的方法,小弟这里疑问就是:那我们平时该如何取舍呢?还有书上练习题6.10引用地址0X0E34为什么会命中。谢谢。
...全文
102
4
打赏
收藏
《深入理解计算机系统》疑问
请问各位大侠: 最近在看《深入理解计算机系统》第6章存储器层次结构,在编写高速缓存友好的代码那儿有看到这样的总结,步长为1的引用模式是好的,因为存储器层次结构中所有层次上的缓存都是将数据存储为连续的块,但是在第五章优化程序性能那一章提到为了考虑到流水线化的能力可在循环内使用多次展开,多路并行的方法,小弟这里疑问就是:那我们平时该如何取舍呢?还有书上练习题6.10引用地址0X0E34为什么会命中。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iampengxiaojin
2011-08-22
打赏
举报
回复
[Quote=引用 2 楼 zmlovelx 的回复:]
循环展开也有限制的,不是展开越多越好.
而且也涉及到编译优化.
现代的编译器优化已经很好了, 除非检测到是瓶颈, 否则不建议手动循环展开.
for (; i<n; ++i) //这个每执行一次都有要判断i<n 循环展开可以消除掉一些判断次数.
dosomthing;
另外一个:
循环展开示例
以下循环展开示例显示在进行展开的同时如何使其它优化方法成为可能:
展……
[/Quote]还不是很理解,不过还是谢谢2楼。
iampengxiaojin
2011-08-22
打赏
举报
回复
[Quote=引用 1 楼 wt_net 的回复:]
我有这样的问题哈,你说第6章的东西我的理解是在讲从cache获得数据,而在第5章讲的东西好像是在讲code的优化.你把针对数据获取与代码优化的不同方法做了以下比较是什么意思?不知道我是不是真的理解LZ了。
[/Quote]恩,我看书上的事例,都是从一个循环开始讨论,不过是从不同的方面,一个是从存储器那一级,讲如何编写可以防止抖动,而第五章是从流水线那一块,讲如何编写可以利用流水线的能力来优化代码,不会有空闲的指令周期,这仅仅是我的理解,也不知道对不对。
帅得不敢出门
2011-08-20
打赏
举报
回复
循环展开也有限制的,不是展开越多越好.
而且也涉及到编译优化.
现代的编译器优化已经很好了, 除非检测到是瓶颈, 否则不建议手动循环展开.
for (; i<n; ++i) //这个每执行一次都有要判断i<n 循环展开可以消除掉一些判断次数.
dosomthing;
另外一个:
循环展开示例
以下循环展开示例显示在进行展开的同时如何使其它优化方法成为可能:
展开之前:
do i=1,100
if (i mod 2 == 0) then a(i) = x
else a(i) = y
enddo
展开之后
do i=1,100,2
a(i) = y
a(i+1) = x
enddo
在本例中,执行 100 次的循环将 x 赋给偶数编号的每个元素,将 y 赋给每个奇数编号的元素。通过展开循环,可以在每个迭代中同时执行两个赋值,从而消除循环体中的一个分支。
不断修行
2011-08-20
打赏
举报
回复
我有这样的问题哈,你说第6章的东西我的理解是在讲从cache获得数据,而在第5章讲的东西好像是在讲code的优化.你把针对数据获取与代码优化的不同方法做了以下比较是什么意思?不知道我是不是真的理解LZ了。
深入理解计算机系统
(CSAPP)含lab详解 完结
深入理解计算机操作系统-第一章 1.1 信息就是位 + 上下文 #include <stdio.h> int main() { printf("hello, world\n"); return 0; } hello.c的 ascii文本表示 像 hello.c 这样只由 ASCII 字符构成的文件...
深入理解计算机系统
2、系统中所有的信息---包括磁盘文件、储存器中程序、储存器中存放的用户数据以及网路上传送的数据,都是由一串比特表示的。 1.2 程序被其他程序翻译成不同的格式 1、为了在系统上运行hello.c程序,每条C语句都被...
阅读
深入理解计算机系统
(csapp)有感(1)
个人理解:其实我认为这里的漫游,就是从总体去了解计算机系统的底层知识,在本章只会做一个概述,并且在下面去详细的讲解,目录确实也证明了这个猜想 既然知道本章写了什么内容以后,我们带着目录上面的
疑问
,去对...
深入理解计算机系统
——Midterm Exam 2012
深入理解计算机系统
——Midterm Exam 2012
由读《
深入理解计算机系统
》一书引发对程序本质的探讨以及自己的一些理解
首先不得不说《
深入理解计算机系统
》着的是一本很不错的书,有一种强烈推荐给咱们计算机科学学院的同学把它作为程序设计及计算机科学入门书籍的冲动,当然,话说我也只是一个学生的角色,还是要“在其位,谋其政”啊...
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章