Intel
文章平均质量分 89
_nahuw
这个作者很懒,什么都没留下…
展开
-
深入代码优化 (三) 数据结构布局优化
1980年之前,cpu访问内存和访问寄存器的速度是差不多的,但自1980年以来,cpu和内存的性能差距一直在扩大,1980年-2000年,cpu的性能提升了600倍,而内存的访问时间只提升了6倍。在cpu从内存中读取数据的这段时间内,cpu都是处于无事可做的等待状态。所以缓存cache的出现,在很大程度上能够弥补cpu和内存速度之间的巨大鸿沟。在高性能系统中,缓存命中率是决定性能好坏的重要因素。原创 2022-01-17 11:37:19 · 768 阅读 · 0 评论 -
深入代码优化 (二) 使用SIMD优化程序
想要代码能尽量的自动矢量化,以下几点其实是我们可以做到的:-避免使用全局指针和全局变量以帮助编译器生成 SIMD 代码。-使用尽可能小的 SIMD 数据类型,通过使用更长的 SIMD 矢量长度来实现更多的并行性。- 合理安排循环的嵌套,以便最内层的嵌套没有迭代间的依赖关系。尤其要避免在较早的迭代中存储数据,而在往后的迭代中加载该数据。-避免在循环内使用条件分支。-保持循环变量表达式简单。原创 2021-12-01 15:24:35 · 9546 阅读 · 0 评论 -
使用VTune分析内存及寻找内存泄漏
在IntelVTune Profiler提供了基于事件的内存消耗分析方法(Memory Consumption Analysis)。如果还不清楚VTune的使用方法,请移步使用Intel VTune Profiler进行性能分析及优化_天寒寒的博客-CSDN博客。该内存分析方法分析的目标是linux本地进程或者JAVA,python目标。如果是基于DPDK这种预先从大页当中分配一块内存,然后通过自身的内存管理办法再进行内存分配和释放的应用程序,该方法是无法进行捕获和分析的。内存消耗分析方法可以探索.原创 2021-11-22 18:54:05 · 3058 阅读 · 0 评论 -
深入代码优化 (一) 使用分支预测技术
简介条件分支是指后续具有两路可执行分支。不跳转分支(not-taken branch),至接下来会顺序执行紧挨着JMP的指令。跳转分支(taken branch),通过JMP跳转到另外一块内存去执行那里的指令。是否执行条件跳转,只有在该分支指令在流水线中通过了执行阶段(execution stage)才能确定下来。如果没有分支预测技术,处理器将会等待分支指令通过了指令流水线的执行阶段,才把下一条指令送入流水线的第一个阶段—取指阶段(fetch stage)。这就会引起流水线停顿(pipeline原创 2021-11-01 23:40:57 · 2079 阅读 · 0 评论 -
Intel自顶向下微架构分析方法
现代 CPU 使用流水线(pipelining)以及硬件多线程、乱序执行和指令级并行等技术来尽可能有效地利用资源。原创 2021-10-19 10:56:21 · 1826 阅读 · 0 评论 -
使用Intel VTune Profiler进行性能分析及优化
Intel VTune Profiler是一个全平台的性能分析工具,可以帮助你快速发现和分析应用程序及整个系统的性能瓶颈。工具支持分析本地或远程的Windows,Linux及Android应用,这些应用可以部署在CPU,GPU,FPGA等硬件平台上。支持分析的语言包括:DPC++,C,C++,C#,Fortran,OpenCL,Python,Go,Java,汇编等。原创 2021-09-19 10:18:04 · 18043 阅读 · 1 评论