gpt4 book ai didi

ios - 加速 : how do I add multiple vectors into an output vector of different size from the input vectors?

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

我有四个向量 A、B、C、D,长度为 1024 个 double 值。然后我得到我的输出向量 O,长度为 1792 Doubles,并且最初全为零。

我想将 A 添加到 O 中,以便在位置 0-1023 处添加 A Double-for-Double

稍后我想对 B 256 Double 做同样的事情,所以将 B 添加到 O 以便在位置 256-1279 添加 B Double-for-Double

然后C也一样,位置512-1535

然后最后D一样,位置768-1791

如何使用 Apple 的 Accellerate 框架执行此操作?我正在查看 vDSP_vaddD,但输出数组似乎必须具有相同的长度?

我正在尝试在 Swift 中表达这一点,如果我使用的是 Objective C,我希望我可以使用指针算术来表达输出数组中我希望开始的位置?

干杯

尼克

最佳答案

O.withUnsafeMutableBufferPointer { (inout bufPtr : UnsafeMutableBufferPointer<Double>) -> Void in
var ptr = bufPtr.baseAddress
vaddD(A, 1, ptr, 1, ptr, 1, 1024)
ptr += 256
vaddD(B, 1, ptr, 1, ptr, 1, 1024)
ptr += 256
vaddD(C, 1, ptr, 1, ptr, 1, 1024)
ptr += 256
vaddD(D, 1, ptr, 1, ptr, 1, 1024)
}

我承认这看起来很丑陋,而且在 Swift 编译器都没有的意义上是不安全的运行时也不能检查数组边界,但到目前为止这是唯一的解决方案我能找到。

关于ios - 加速 : how do I add multiple vectors into an output vector of different size from the input vectors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193266/

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