Android Ne10臂库最大长度fft的限制

Android Ne10臂库最大长度fft的限制,android,c,android-ndk,arm,fft,Android,C,Android Ndk,Arm,Fft,我正在使用Ne10 ARM库中包含的FFT计算2^18个样本向量的傅里叶变换,但它似乎不起作用。它在Android Studio上生成Sigsev错误。有趣的是512采样FFT工作得很好。我的问题是: 使用此库计算fft的最大样本量是否有限制 我正在使用: fftPlan = ne10_fft_alloc_c2c_float32_neon(fftSize); fftIn = (ne10_fft_cpx_float32_t*)NE10_MALLOC (fftSize * sizeof (ne10_

我正在使用Ne10 ARM库中包含的FFT计算2^18个样本向量的傅里叶变换,但它似乎不起作用。它在Android Studio上生成Sigsev错误。有趣的是512采样FFT工作得很好。我的问题是:

  • 使用此库计算fft的最大样本量是否有限制
  • 我正在使用:

    fftPlan = ne10_fft_alloc_c2c_float32_neon(fftSize);
    fftIn = (ne10_fft_cpx_float32_t*)NE10_MALLOC (fftSize * sizeof (ne10_fft_cpx_float32_t));
    fftOut = (ne10_fft_cpx_float32_t*)NE10_MALLOC (fftSize * sizeof (ne10_fft_cpx_float32_t));  
    
  • 这些内存分配函数是线程安全的吗?(我已经测试过了,他们似乎已经测试过了)
  • 忽略他们自己的FFT基准比较。是否有其他第三方网站可以与fftw进行性能比较
  • 当我使用NDK10e构建从我的android应用程序加载的本机共享库时,库会生成“文本重新定位警告”,使用ndk13时会产生以下错误:

    D:/androiddevelope/android-ndk-r13/build/../toolschains/arm-linux-androidabi-4.9/prebuild/windows-x86_64/lib/gcc/arm-linux-androidabi/4.9.x/../../arm linux-androidabi/bin\ld:警告:共享库文本段不可共享

    D:/androiddevelope/android-ndk-r13/build/../toolschains/arm-linux-androideabi-4.9/prebuild/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../arm linux-androideabi/bin\ld:错误:将警告视为错误clang++.exe:错误:链接器命令失败,退出代码1(使用-v查看调用)


  • 当样本量大于512时会发生什么情况?你从来没有真正说明过这个问题。
    errno
    返回什么?您是否遇到了一个
    ENOMEM
    ?许多安卓手机和其他小工具几乎没有内存。我不会对设备只有512MB感到惊讶。
    NE10\u MALLOC()
    NE10\u fft\u alloc\u c2c\u float32\u neon()
    如果没有足够的可用内存,可能会失败。在这些情况下,这些函数返回
    NULL
    。可以通过添加
    if(fftPlan==NULL | | | fftIn==NULL | | fftOut==NULL){fprintf(stderr,“malloc failed\n”);exit(1);}
    来测试它吗?当样本大小大于512时会发生什么?你从来没有真正说明过这个问题。
    errno
    返回什么?您是否遇到了一个
    ENOMEM
    ?许多安卓手机和其他小工具几乎没有内存。我不会对设备只有512MB感到惊讶。
    NE10\u MALLOC()
    NE10\u fft\u alloc\u c2c\u float32\u neon()
    如果没有足够的可用内存,可能会失败。在这些情况下,这些函数返回
    NULL
    。如果(fftPlan==NULL | | | fftIn==NULL | | fftOut==NULL){fprintf(stderr,“malloc failed\n”);exit(1);},可以通过添加
    来测试它吗?