Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

warning during the build #138

Open
picca opened this issue Sep 21, 2023 · 1 comment
Open

warning during the build #138

picca opened this issue Sep 21, 2023 · 1 comment

Comments

@picca
Copy link

picca commented Sep 21, 2023

Hello, I am preparing the packaging of vkfft and pyvkfft.

This is the build of pyvkfft since this is my only package whcih use vkfft :).

thanks for considering

building 'pyvkfft._vkfft_cuda' extension
creating build
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/src

   22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
      |                                                                                                        ^
In file included from /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel2/vkFFT_FFT.h:31,
                 from /usr/include/vkFFT/vkFFT_PlanManagement/vkFFT_Plans/vkFFT_Plan_FFT.h:31,
                 from /usr/include/vkFFT/vkFFT_AppManagement/vkFFT_InitializeApp.h:30,
                 from /usr/include/vkFFT.h:76:
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:64:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:69:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:74:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:79:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:84:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In function ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void appendPushConstant(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:28:20,
    inlined from ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:89:21:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:33:38: warning: ‘varType’ may be used uninitialized [-Wmaybe-uninitialized]
   33 |                 sc->tempLen = sprintf(sc->tempStr, "    %s %s;\n", varType->data.s, var->data.s);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h: In function ‘void _ZL19appendPushConstantsP34VkFFTSpecializationConstantsLayout.part.0(VkFFTSpecializationConstantsLayout*)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_PushConstants.h:31:30: note: ‘varType’ was declared here
   31 |                 PfContainer* varType;
      |                              ^~~~~~~
In file included from /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel2/vkFFT_FFT.h:29:
In function ‘void appendSharedMemoryVkFFT(VkFFTSpecializationConstantsLayout*, int)’,
    inlined from ‘void appendKernelStart(VkFFTSpecializationConstantsLayout*, int64_t)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelStartEnd.h:253:25:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h:172:38: warning: ‘vecType’ may be used uninitialized [-Wmaybe-uninitialized]
  172 |                 sc->tempLen = sprintf(sc->tempStr, "__local %s sdata[%" PRIu64 "];\n\n", vecType->data.s, sc->usedSharedMemory.data.i / sc->complexSize);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h: In function ‘void appendKernelStart(VkFFTSpecializationConstantsLayout*, int64_t)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h:153:30: note: ‘vecType’ was declared here
  153 |                 PfContainer* vecType;
      |                              ^~~~~~~
In function ‘void appendSharedMemoryVkFFT(VkFFTSpecializationConstantsLayout*, int)’,
    inlined from ‘void appendKernelStart(VkFFTSpecializationConstantsLayout*, int64_t)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelStartEnd.h:253:25:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h:126:38: warning: ‘vecType’ may be used uninitialized [-Wmaybe-uninitialized]
  126 |                 sc->tempLen = sprintf(sc->tempStr, "__local %s sdata[%" PRIu64 "];// sharedStride - fft size,  gl_WorkGroupSize.y - grouped consecutive ffts\n\n", vecType->data.s, sc->usedSharedMemory.data.i / sc->complexSize);
      |                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h: In function ‘void appendKernelStart(VkFFTSpecializationConstantsLayout*, int64_t)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_MemoryManagement/vkFFT_MemoryInitialization/vkFFT_SharedMemory.h:107:30: note: ‘vecType’ was declared here
  107 |                 PfContainer* vecType;
      |                              ^~~~~~~
In file included from /usr/include/vkFFT/vkFFT_PlanManagement/vkFFT_API_handles/vkFFT_InitAPIParameters.h:26,
                 from /usr/include/vkFFT/vkFFT_PlanManagement/vkFFT_Plans/vkFFT_Plan_FFT.h:27:
In function ‘void PfDeallocateContainer(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void PfDeallocateContainer(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_MathUtils/vkFFT_MathUtils.h:77:20,
    inlined from ‘void appendSinCos20(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:186:23,
    inlined from ‘void appendSinCos20(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:118:20,
    inlined from ‘VkFFTResult shaderGen_R2C_even_decomposition(VkFFTSpecializationConstantsLayout*, int)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel2/vkFFT_R2C_even_decomposition.h:53:17:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_MathUtils/vkFFT_MathUtils.h:79:21: warning: ‘temp_name.PfContainer::data.PfData::s’ may be used uninitialized [-Wmaybe-uninitialized]
   79 |                 free(container->data.s);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel1/PrePostProcessing/vkFFT_4step.h:29,
                 from /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel2/vkFFT_FFT.h:34:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h: In function ‘VkFFTResult shaderGen_R2C_even_decomposition(VkFFTSpecializationConstantsLayout*, int)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:126:21: note: ‘temp_name.PfContainer::data.PfData::s’ was declared here
  126 |         PfContainer temp_name;
      |                     ^~~~~~~~~
In function ‘void PfDeallocateContainer(VkFFTSpecializationConstantsLayout*, PfContainer*)’,
    inlined from ‘void PfDeallocateContainer(VkFFTSpecializationConstantsLayout*, PfContainer*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_MathUtils/vkFFT_MathUtils.h:77:20,
    inlined from ‘void appendSinCos20(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:186:23,
    inlined from ‘void appendSinCos20(VkFFTSpecializationConstantsLayout*)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:118:20,
    inlined from ‘VkFFTResult shaderGen_FFT(VkFFTSpecializationConstantsLayout*, int)’ at /usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel2/vkFFT_FFT.h:61:17:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_MathUtils/vkFFT_MathUtils.h:79:21: warning: ‘temp_name.PfContainer::data.PfData::s’ may be used uninitialized [-Wmaybe-uninitialized]
   79 |                 free(container->data.s);
      |                 ~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h: In function ‘VkFFTResult shaderGen_FFT(VkFFTSpecializationConstantsLayout*, int)’:
/usr/include/vkFFT/vkFFT_CodeGen/vkFFT_KernelsLevel0/vkFFT_KernelUtils.h:126:21: note: ‘temp_name.PfContainer::data.PfData::s’ was declared here
  126 |         PfContainer temp_name;
      |                     ^~~~~~~~~
x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -Wl,-z,relro -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-cpython-311/src/vkfft_opencl.o -L/usr/lib/x86_64-linux-gnu -lOpenCL -o /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pyvkfft/build/pyvkfft/_vkfft_opencl.cpython-311-x86_64-linux-gnu.so --shared
DTolm added a commit that referenced this issue Sep 25, 2023
-Added double-double support in VkFFT. Requires cpu initialization in full quad precision, so only supports gcc for now. Potentially possible to add full FP128 support or some other FP128 library (like mpir) in the future.
-Data has to be stored in double-double before VkFFT kernels calls (no fp128<->double-double conversion on the GPU yet).
-Full 1e-32 precision, but same range as FP64. See Library for Double-Double and Quad-Double Arithmetic by Y Hida for more information on double-double.
-Reuqires FMA contraction to be disabled (due to ab-cd contraction rounding mismatch). Doesn't work on Vulkan as I haven't found how to do that yet.
-Fixed warnings (#138)
-Added proper check for app to be zero before initializeVkFFT call and zeroing on deletion (#134)
-Added an option to provide staging buffer in application and VkGPU handle (#129)
-Added guards for build type (#128)
-Fixed missing deallocation calls for the inverse Bluestein axes. Fixed the buffer layout size in Vulkan in some cases.
-Refactored the code generator and container struct layout for better handling complex numbers (-5k loc).
-Added more precision tests and benchmarks.
-Will be merged in the main branch after more testing and update to the documentation.
@DTolm
Copy link
Owner

DTolm commented Sep 25, 2023

Hello,

I believe I have fixed these issues in the 1.3.2 version. It was way into the testing stage that I decided not to add these fixes to the intermediate version. It is up to you to wait for more tests of 1.3.2 or use the 1.3.1 version. Thank you for bringing the warnings up!

Best regards,
Dmitrii

@DTolm DTolm mentioned this issue Oct 23, 2023
DTolm added a commit that referenced this issue Oct 23, 2023
-Added double-double support in VkFFT. Requires cpu initialization in full quad precision, so only supports gcc with quadmath dependency for now. Potentially possible to add full FP128 support or some other FP128 library (like mpir) in the future.
-Data has to be stored in double-double before VkFFT kernels calls (no fp128<->double-double conversion on the GPU yet).
-Full 1e-32 precision, but same range as FP64. See Library for Double-Double and Quad-Double Arithmetic by Y Hida for more information on double-double.
-Double-double requires FMA contraction to be disabled (due to ab-cd contraction rounding mismatch). Doesn't work on Vulkan as I haven't found how to do that yet.
-Added DST I-IV support.
-Fixed warnings (#138)
-Added proper check for app to be zero before initializeVkFFT call and zeroing on deletion (#134)
-Added an option to provide a staging buffer in the application and VkGPU handle (#129)
-Added guards for build type (#128)
-Changed default innermost stride for real buffers in out-of-place R2C from size[0]+2 to size[0] (#139)
-Allow specifying glslang version (#135)
-Improved instruction count and accuracy for radix-7.
-Fixed missing deallocation calls for the inverse Bluestein axes. Fixed the buffer layout size in Vulkan in some cases.
-Refactored the code generator and container struct layout for better handling complex numbers (-5k loc).
-Added more precision tests and benchmarks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants