X86-AVX编程:打包浮点与整数运算
1. 打包浮点运算
在X86 - AVX编程中,打包浮点运算具有重要地位。以一个计算矩阵列均值的程序为例,其核心目的是计算双精度浮点值矩阵中每列的算术平均值。
1.1 C++实现
以下是C++代码实现:
#include "stdafx.h"
#include <memory.h>
#include <stdlib.h>
extern "C" bool AvxPfpColMeans_(const double* x, int nrows, int ncols, double* col_means);
bool AvxPfpColMeansCpp(const double* x, int nrows, int ncols, double* col_means)
{
// 确保nrows和ncols有效
if ((nrows <= 0) || (ncols <= 0))
return false;
// 确保col_means正确对齐
if (((uintptr_t)col_means & 0x1f) != 0)
return false;
// 计算列均值
memset(col_means, 0, ncols * sizeof(double));
for (int i = 0; i < nrows; i++)
{
for (int j = 0; j < ncols; j++)
超级会员免费看
订阅专栏 解锁全文
117

被折叠的 条评论
为什么被折叠?



