dev

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ls /dev


ptys1
ptys2
..

tty
...

disk0
...
null

tty

控制终端(/dev/tty)   如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它 具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。

比特币中的计算量证明

⽐特币系统的信任是建⽴在计算的基础上的。交易被包在⼀起放进区块中时需要极⼤的计算量来证明,但只需少量计算就能
验证它们已被证明。挖矿在⽐特币系统中起着两个作⽤:

▷ 挖矿在构建区块时会创造新的⽐特币,和⼀个中央银⾏印发新的纸币很类似。每个区块创造的⽐特币数量是固定的,随时间会渐渐减少。
▷ 挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了⾜够的计算量后,这些交易才被确认。区块越多,花费的计算量
越⼤,意味着更多的信任。

比特币使用两次 hash 来计算:SHA256(SHA256(Block_Header))

GPU - 硬件架构

  1. GPU 架构(microarchitecture), 表示GPU在芯片设计层面上的不同处理方式,包括的内容有计算单元(SIMD)的个数、有无L1,L2缓存、是否有双精度支持等。按时间顺序依次是Tesla, Fermi, Kepler, Maxwell, Pascal, Volta。
  2. 显卡系列:根据使用场景的不同,分成GeForce, Quadro, Tesla。
    • GeForce用于家庭和个人电脑,包括游戏和娱乐等;
    • Quadro用于工业渲染、艺术设计,工作站等场合。
    • Tesla用于科学计算,深度学习加速等场景。当然这三者的使用场景并没有严格的边界,想GeForce 系列的GTX 1080也可以用来做深度学习实验。
  3. 芯片型号,例如GT200、GK210、GM104、GF104, K80, M40等。其中第二个字母表示架构,如K40 中的K表示是Kepler架构,P100中的P表示Pascal架构。
  4. 针对GeForce系列,还有2系列,3系列,200系列,400系列等分类,像GeForce GTX 1080 就是10系列。

疑问:
为什么GPU的升级是按架构的。CPU的升级也是按架构升级的,还是多架构同时迭代更新?

注意区分

  • Tesla GPU架构和Tesla系列。前者已经用的不是很多了,而后者是最近才出的针对深度学习的系列,使用很多,像我们实验室用的K20,K80都是这个系列。
  • 最近新出了一款 TiTan X, 主要要和GeForce GTX Tian X 区分

参考 https://vra.github.io/2016/12/18/nvidia-gpu-names/

GPU架构细节

CPU和GPU的浮点数计算能力差距较大,是因为GPU是专门为密集型计算、并行计算设计的,常用于图形渲染。GPU的设计架构会把更多的晶体管用于数据处理,而不是数据缓存和控制流。

GPU会将数据映射到多线程并行处理。

the memory access latency can be hidden with calculations instead of big data caches.

FAQ

CPU为什么需要这么多cache和control?

GPU不用cache,数据读写比较慢吧?是不涉及到频繁用cache?不需要对一些数据复用吗?

GPU的绿色点都是ALU?边上的黄色和红色是control和cache?