gpt4 book ai didi

objective-c - 并发访问 GCD 中的单个 FFTSetup 数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:15 25 4
gpt4 key购买 nike

是否可以创建一个单个 FFTSetup 数据结构并使用它同时执行多个 FFT 计算?像下面这样的东西会起作用吗?

FFTSetup fftSetup = vDSP_create_fftsetup(
16, // vDSP_Length __vDSP_log2n,
kFFTRadix2 // FFTRadix __vDSP_radix
);
NSAssert(fftSetup != NULL, @"vDSP_create_fftsetup() failed to allocate storage");

for (int i = 0; i < 100; i++)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),
^{
vDSP_fft_zrip(
fftSetup, // FFTSetup __vDSP_setup,
&(splitComplex[i]), // DSPSplitComplex *__vDSP_ioData,
1, // vDSP_Stride __vDSP_stride,
16, // vDSP_Length __vDSP_log2n,
kFFTDirection_Forward // FFTDirection __vDSP_direction
);
});
}

我想答案取决于以下考虑因素:

1) vDSP_fft_zrip() 是否仅以“只读”方式访问fftSetup 中的数据(或它指向的数据)?或者 fftSetup 中是否有一些临时缓冲区(暂存空间)由 vDSP_fft_zrip() 在执行其 FFT 计算时写入?

2) 如果fftSetup中的数据以“只读”方式访问,多个进程/线程/任务/ block 是否可以同时访问它? (我在考虑这样一种情况,即多个进程可以打开同一个文件进行读取,但不一定用于写入或追加。这个类比合适吗?)

在相关说明中,FFTSetup 数据结构占用了多少内存?有什么办法可以知道吗? (它是一种不透明的数据类型。)

最佳答案

您可以创建一个 FFT 设置并重复并同时使用它。这是预期用途。 (我是 vDSP_fft_zrip 和 vDSP 中其他 FFT 实现的当前实现的作者。)

关于objective-c - 并发访问 GCD 中的单个 FFTSetup 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378223/

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