gpt4 book ai didi

当我使用 AVX 功能时崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:48 34 4
gpt4 key购买 nike

#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "x86intrin.h"

void dd_m(double *clo, int m)
{
int j;
__m256d *vclo = (__m256d *)clo;
__m256d al=_mm256_set_pd(0,0,0,0);
__m256d clo_n=_mm256_set_pd(0,0,0,0);
int i;
for (j = 0; j < m; j++) {
for (i = 0; i < m; i++) {
al = _mm256_add_pd(vclo[m/4*j+i] , clo_n);
}
}
}
int main(int argc, const char * argv[]){

int m;
double* zlo;
int i;


m=(int)pow(2,8);

zlo=(double *)_mm_malloc(sizeof(double) * m*m,32);
for (i=0;i<m*m;i++) {
zlo[i]=0.0;
}
dd_m(zlo, m);

_mm_free(zlo);

return 0;
}

这是我的代码。它产生一个错误

"Thread 1: EXC_BAD_ACCESS (code=1, address=0x102900000)"

内部 for 循环。

我使用最新的 xcode 和 clang。

我该怎么办?

最佳答案

通过将 clo 转换为指向 256 位 vector 作为 vclo,您的行长度除以四,您在索引计算中更改了它,但没有在 i 的内部循环中。

for (j = 0; j < m; j++) {
for (i = 0; i < m/4; i++) { // in vclo, the rows are only m/4 long
al = _mm256_add_pd(vclo[m/4*j+i] , clo_n);
}
}

关于当我使用 AVX 功能时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149846/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com