发表评论取消回复
相关阅读
相关 C++性能优化系列——3D高斯核卷积计算(十二)Intrinsic实现
void GaussSmoothCPU3DOptZYXSplitZIntrinsic(float pSrc, int iDim[3], float pKernel, i
相关 C++性能优化系列——3D高斯核卷积计算(九)3D高斯卷积OpenMP Task优化内存访问
本篇基于 [C++性能优化系列——3D高斯核卷积计算(八)3D高斯卷积][C_3D_3D]中的代码实现的计算逻辑,通过OepnMP的Task特性,优化Z维度卷积计算中内存性能瓶
相关 C++性能优化系列——3D高斯核卷积计算(八)3D高斯卷积
本篇基于可分离卷积的性质,按照 X Y Z的顺序,依次计算每个维度的一维卷积。 代码实现 因为是按照X Y Z的计算顺序,因此只能够在计算X维度的卷积时,复用之前实现的
相关 C++性能优化系列——3D高斯核卷积计算(七)Intrinsic实现2D高斯卷积
本篇基于 [C++性能优化系列——3D高斯核卷积计算(六)交换维度计算2D卷积][C_3D_2D] 中2D高斯卷积的计算逻辑,通过Intrinsic函数实现相同的功能并对比性能
相关 C++性能优化系列——3D高斯核卷积计算(六)交换维度计算2D卷积
在 [C++性能优化系列——3D高斯核卷积计算(五)2D卷积分离计算][C_3D_2D] 中,基于可分离卷积的性质,先计算x维度卷积,再将y维度卷积计算过程打乱并重组,完成了两
相关 C++性能优化系列——3D高斯核卷积计算(五)2D卷积分离计算
高斯卷积核具有可分离的性质,因此可以通过以下方法计算二维高斯卷积:构造一个一维高斯卷积核,将原始二维矩阵分别以行主序与列主序,与一维卷积核做卷积计算,得到的结果就是目标二维高斯
相关 C++性能优化系列——3D高斯核卷积计算(三)IPP计算一维卷积
因为高斯卷积核计算具有可分离的性质,其计算过程的复杂度比不可分离的卷积要高,因此直接对比自己实现的3D高斯卷积与高性能库IPP的执行情况是没意义的。但是,只进行一维卷积,对比两
相关 C++性能优化系列——3D高斯核卷积计算题目
计划写一个优化3D高斯核卷积计算的系列博客。3D高斯核卷积计算的需求来自于公司配准算法需求,与Intel联合举办的性能优化竞赛,这里展示题目信息。 题目 题目三3D卷积
相关 C++性能优化系列——3D高斯核卷积计算(二)FMA向量化计算一维卷积
高斯核的卷积计算是可分离的,即高斯核的每一个维度可以分开处理。因此,一维卷积计算成为了实现3D高斯卷积的基础。一维卷积计算的性能直接影响了整个程序的性能。本篇将实现一维卷积功能
相关 C++性能优化系列——3D高斯核卷积计算(一)滑动窗口法
滑动窗口法是最容易理解的计算卷积的方法。计算过程简单来说就是将卷积核的锚点在它有效的范围内(能够与矩阵计算的所有锚点位置组成的点集)移动,并依次计算和新目标矩阵。 滑窗法做
还没有评论,来说两句吧...