11 2020 档案

摘要:首先是头文件. <stdarg.h> 其次, 我们的目的是实现支持变长参数的函数, 但并不是说,这个函数参数可以全都是变的. 不行. 函数的参数列表中, 一定至少要有一个有name的参数. 比如printf, 它的定义是printf(const char * restrict format, ... 阅读全文
posted @ 2020-11-25 16:03 Tokubara 阅读(249) 评论(0) 推荐(0) 编辑
摘要:这个问题太微小了, 没什么人说, 我试验了好多分钟, 所以就记一记. 其实我们知道, las在axis中的作用, 是控制labels是垂直还是平行的. mtext其实与axis的labels有相似之处, las的效果也相仿. 当las=0时, 始终保持平行于框线. side=1与side=3朝向相同 阅读全文
posted @ 2020-11-21 19:07 Tokubara 阅读(245) 评论(0) 推荐(0) 编辑
摘要:来自csapp第5章. 关于指令级并行, 我觉得一个典型的例子是多项式求值(练习5.5与练习5.6). 看这两个循环哪个会快一些? 如果没有并行的意识, 那么我想都会觉得第二个快, 因为第一个多了一次乘法操作. 但考虑到并行, 是第一个快. 第一个有两条关键路径. xpwr构成的, 和result构 阅读全文
posted @ 2020-11-11 09:21 Tokubara 阅读(245) 评论(0) 推荐(0) 编辑
摘要:读csapp的第6章, 感觉cache hit rate怎么都算得和答案不一样, 越看越看不下去. 不过终于看到一点有意思的内容. 那就是根据局部性来预测不同的矩阵乘法方式的性能. 矩阵乘法, 自然不用说, 3个循环, i,j,k. 其中i表示行, j表示列, k表示中间. 任务就是比较这6个方式的 阅读全文
posted @ 2020-11-09 16:02 Tokubara 阅读(512) 评论(0) 推荐(0) 编辑
摘要:来自csapp的第6章. 这段代码看上去局部性不错. 如果cache的参数是(2,1,4,6), 也就是有2个set, 直接映射, 一个block是16 byte, 可存4个浮点数. 如果x,y的起始地址分别是0, 32. 对x[0], set对应0, 对y[0], 地址是32, 100000, s 阅读全文
posted @ 2020-11-08 14:54 Tokubara 阅读(627) 评论(0) 推荐(0) 编辑
摘要:phase_6我做了三个多小时, 必须记录一下. 我觉得难度挺大的, 因为它就是由好几个循环组成的, 还有几个双层循环(其中1个双层循环还挺费解). 循环多而且相互关联, 而且是以内存的形式相互关联. 先贴一下反汇编得到的代码: 00000000004010f4 <phase_6>: 4010f4: 阅读全文
posted @ 2020-11-01 12:16 Tokubara 阅读(1166) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示