标签 C++ 下的文章
一、为什么要锁
锁是为了防止多线访问共同内存时的冲突问题,先看实例:两个线程分别对全局变量累加:
//gcc lock_test.c -lpthread
#include...
一、线程池的好处
如果任务的数量一开始不确定,我们该如何开辟线程?如果来一个任务开辟一个线程,任务结束之后又销毁线程,那么整体的效率会很低,大多数时间都在产生和销毁线程,...
一、多核CPU的结构
服务器的多核结构属于NUMA(Non-Uniform Memory Access,非一致性内存访问)架构。这里有一篇很好的介绍NUMA架构理解。
以...
一、多核时代
随着数字IC工艺的提升,单核性能越来越高,但随之来的是功率密度增大,芯片发热严重,要进一步提升性能,很自然会想到C多核。将计算任务分配到不同的cpu,最后将...
背景
avx256是x86cpu架构下实现SIMD(单指令多数据)的指令集。它能够利用cpu内部256bit的寄存器,同时对4位double或8位int类型的数操作,达到...
利用原子指令加速矩阵运算
C++里面有个原子指令库,不需要通过内嵌汇编就可以调用cpu内部SIMD的指令,头文件 包含SSE库, 包含SSE2库, 包含SSE3库。
原子...