摘要: 英文《Programming Massively Parallel Processors: A Hands-on Approach》 第三版 ,中文版第三版好像没出过。 关注公众号:红宸笑。 回复:电子书 即可 阅读全文
posted @ 2022-11-17 22:18 arthurzyc 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 包括所有完整的附录Appendix A-M和习题答案 关注公众号,回复【电子书】即可 阅读全文
posted @ 2022-11-17 22:13 arthurzyc 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 关注公众号:红宸笑。 回复:电子书 即可 阅读全文
posted @ 2022-11-17 22:11 arthurzyc 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 关注公众号, 回复:电子书 即可 阅读全文
posted @ 2022-11-17 22:10 arthurzyc 阅读(2781) 评论(2) 推荐(1) 编辑
摘要: 先来看一个小例子 : 编写函数遍历一个整型数组的元素,数组最后一个元素为-1标志数组的结束。 #include <stdio.h> void test(int *a){ int x; while((x = *a++) != -1) { printf("%d\n",x); } } int main(v 阅读全文
posted @ 2022-11-16 14:30 arthurzyc 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 目录 传统同步方案的缺点 folly/Synchronized.h 简单使用 Synchronized的模板参数 withLock()/withRLock()/withWLock() —— 更易用的加锁方式 升级锁 ulock()和 withULockPtr() Timed Locking Sync 阅读全文
posted @ 2022-11-16 13:41 arthurzyc 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 介绍 folly/small_vector.h folly/small_vector.md 行为与std::vector类似,但是使用了small buffer optimization(类似于fbstring中的SSO),将指定个数的数据内联在对象中,而不是像std::vector直接将对象分配在 阅读全文
posted @ 2022-11-16 13:40 arthurzyc 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 在引入fbstring之前,我们首先再回顾一下 string 常见的三种实现方式。 string 常见的三种实现方式 string 中比较重要的 3 个字段: char *data. 指向存放字符串的首地址(在 SSO 的某些实现方案中可能没有此字段)。 size_t size. 字符串长度。 si 阅读全文
posted @ 2022-11-16 13:38 arthurzyc 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 最近在研究计算机里的基本逻辑电路,想到一个问题:为什么CPU需要时钟这样的概念? 首先考虑如下逻辑电路: 当A=B=1时,Q=0。当输入信号发生变化时,逻辑元件不会立即对输入变化做出反应,会有一个传播时延(propagation delay)。当B变化为0时,由于B也作为XOR的直接输入,所以XOR 阅读全文
posted @ 2022-11-16 13:26 arthurzyc 阅读(319) 评论(0) 推荐(0) 编辑
摘要: IBM 360/91浮点单元最先实现Tomasulo算法从而允许乱序执行。360体系只有4个双精度浮点寄存器,限制了编译器调度的有效性。而且,IBM 360/91的访存和浮点延迟都很长,如果顺序执行指令,虽然只有RAW hazard,但是后面无关的指令只能被stall。如果乱序执行,还会额外引入WA 阅读全文
posted @ 2022-11-16 13:25 arthurzyc 阅读(569) 评论(0) 推荐(0) 编辑