高性能
文章平均质量分 87
david-yue
通信和IT系统,云计算和虚拟化,人工智能和计算机视觉,无人驾驶
展开
-
多核编程的难题及应对策略
加锁保护导致的串行化问题如果在任务数量固定的前提下,串行化所占的比例是随软件规模的增大而减小的,但不幸的是它会随任务数量的增加而增加,也就是说处理器个数越多,锁竞争导致的串行化将越严重,从而使得串行化所占的比例随处理器个数的增加而急剧增加。对于串行化方面的难题,首先想到的解决措施就是少用锁,甚至采用无锁编程,不过这对普通程序员来说几乎是难以完成的工作,因为无锁编程方面的算法太过于复杂,而且使用不当很容易出错,许多已经发表到专业期刊上的无锁算法后来又被证明是错的,可以想象得到这里面的难度有多大。原创 2022-10-15 10:13:50 · 245 阅读 · 1 评论 -
多核编程性能优化总结
在多路组相联映射管理方式下,Cache被划分成多路(一路也称为一个Cache Page),每路又划分为多个Cache Line,而内存被分成多页,每页的大小和路的大小相同,CPU在加载Cache时每次加载一个Cache Line,但是,内存中某页的Line0只能加载到Cache中某路的Line0,内存中某页的Linen只能加载到Cache中某路的Linen。根据实际需要,CACHE又分为一级CACHE(L1 CACHE),二级CACHE(L2 CACHE)(甚至三级CACHE(L3 CACHE))。原创 2022-10-15 10:09:03 · 1085 阅读 · 0 评论 -
多核处理器9大关键技术
为了使芯片内核充分地工作,最起码的要求是芯片能提供与芯片性能相匹配的存储器带宽,虽然内部Cache的容量能解决一些问题,但随着性能的进一步提高,必须有其他一些手段来提高存储器接口的带宽,如增加单个管脚带宽的DDR、DDR2、QDR、XDR等。所以,芯片对封装的要求也越来越高,虽然封装的管脚数每年以20%的数目提升,但还不能完全解决问题,而且还带来了成本提高的问题,为此,怎样提供一个高带宽,低延迟的接口带宽,是必须解决的一个重要问题。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。原创 2022-10-15 10:04:53 · 1161 阅读 · 0 评论 -
每个程序员都应该了解的内存知识【第一部分】
内存的使用常常是软件性能的决定性因子,而如何避免内存瓶颈的好文章却不好找。这篇文章应该会有所帮助。转载 2022-10-14 14:27:51 · 989 阅读 · 0 评论 -
浅析x86架构中cache的组织结构
这篇文章诞生的源头是我之前在stackoverflow看到的一个问题:Why is transposing a matrix of 512×512 much slower than transposing a matrix of 513×513 ?这个问题虽然国外的大神给出了完美的解释,但是我当时看过之后还是一头雾水。想必对x86架构上的cache没有较深入了解过的童鞋看过之后也是一样转载 2016-03-31 15:51:59 · 6248 阅读 · 2 评论