gpt4 book ai didi

ios - 加速向量中的组件求和

转载 作者:行者123 更新时间:2023-11-28 22:07:01 24 4
gpt4 key购买 nike

我想通过对四个 block 中的组件求和来从另一个数组创建一个数组,例如:

float inVector[256];
float outVector[64];

for(int i=0; i<64; i++){
for(int j=0; j<4; j++){
int k = 4*i + j;
outVector[i] += inVector[k];
}
}

我想加速这个。我查看了 iOS 中可用的库,例如 vDSP 和 vForce,但没有找到合适的库。最接近的候选者是 vDSP_vswsum,但这并不符合我的要求。有人有关于如何加快速度的提示吗?

最佳答案

我的解决方案是大步使用 vDSP_vadd:

vDSP_vadd(inVector,4,inVector+1,4,outVector,1,64);
vDSP_vadd(inVector+2,4,outVector,1,outVector,1,64);
vDSP_vadd(inVector+3,4,outVector,1,outVector,1,64);

user3726960 建议的解决方案如下所示

for(int i=0; i<64; i++){
float out;
vDSP_sve(inVector+4*i,1,&out,4);
outVector[i] = out;
}

我的解决方案比原来的双循环快大约 6 倍,user3726960 的解决方案大约快 3 倍。但是随着内循环中元素的增多和外循环中元素的减少,他的速度可能会更快。

关于ios - 加速向量中的组件求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23724566/

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