Hash Table Benchmark - 字符串删除和插入
这一篇测试字符串 key 下反复删除和插入的性能。
这一篇测试字符串 key 下反复删除和插入的性能。
这一篇测试字符串 key 下的插入和构造性能。
这一篇测试字符串 key 下遍历哈希表的性能。
这一篇测试整数 key 下插入并构造哈希表的性能。
矩阵乘法GEMM(General matrix multiply)是一个被广泛使用的基础算法,各种领域都需要应用,例如神经网络的核心计算任务就是矩阵乘法,交易中的各种信号计算也可能用到矩阵乘法。因此矩阵乘法的效率是极其关键的。
关于如何优化矩阵乘法,我准备写一个较短的系列博文,包括CPU单线程篇、CPU多线程篇、GPU篇。原本计划还有一个稀疏矩阵乘法篇,由于这学期毕业前也没有时间把GPU篇做到满意,因此,稀疏矩阵篇就没了,GPU篇也很不完整。如果日后有时间且有那冲动可能会补上(大概率没有)。
这是矩阵乘法优化第一篇,CPU单线程篇。
矩阵乘法对于同样的抽象算法,不同的优化带来的性能差异极大,现代的部分CPU上最朴素的矩阵乘法实现和最优实现甚至可以有百倍以上的性能差距,这比一些有更低时间复杂度的矩阵乘法算法的优化效果都有效。而这都是针对现代CPU的体系结构作出的针对性优化带来的,SIMD向量指令更是增加了CPU的处理大批量数据时的效率。在本文中,我们将介绍如何针对CPU进行单线程GEMM实现的优化。
如何在程序中重定向标准输入和标准输出呢?本文将记录多种方法并介绍背后的原理。
前一阵子在看一段代码时,虽然猜到那段代码的作用大概是重定向了stdout,但是一时没看明白是怎么完成的重定向。后来一阵学习才发现对stdin和stdout的重定向还有种种方法,而且对这些方法的完全理解需要了解操作系统中的文件描述符的一些实现。
如果对linux上的重定向很熟悉的话,那么这篇文章的内容就不需要看了。
世界上存在什么,不存在什么?
这似乎是个自然科学的问题,但是,同样是个哲学上的问题,这是本体论的根本问题。
这个问题的答案,是和一个人对世界的认识论相关的,如果一个人是怀疑论者,那么他可能认为我们不可能搞明白什么存在,什么不存在。如果一个人是自然主义者,那么他可能认为一切都交由自然科学去鉴定。
鉴于这个问题实在牵扯到了方方面面,而且仍是争论不休的问题,我也只不过是在这里从几个方面记录下自己的想法而已。
由于之前用来作为Time Machine备份的硬盘只有1t,能记录的快照日期有限,我又购置了一个2t的移动硬盘来作为新的备份磁盘。但是在迁移旧备份到新磁盘的过程却并不简单。
我先后尝试了官网推荐的拷贝粘贴法、rsync法、磁盘工具的恢复磁盘法、dd法。
经常遇到的场景是,公司或学校的服务器都不能直接在外网进行访问,但是存在一个代理服务器,这时候就可以利用代理服务器来访问内网服务器。
使用跳板机访问内网服务器的场景和姿势都很多,我这里只介绍我碰到的场景。