- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have found a possible bug in oneMKL version 2025.3 using VS 2026. Please let me know, if you need any further information.
Version:
Intel(R) oneAPI Math Kernel Library Version 2025.3-Product Build 20251007 for Intel(R) 64 architecture applications
Building for x64 on Windows, MKL_ILP64 is _not_ defined.
The test (see code below) gives:
1D real create -> status=0, msg=Intel oneMKL DFTI SUCCESS: No error 1D real commit -> status=0, msg=Intel oneMKL DFTI SUCCESS: No error 2D complex create -> status=0, msg=Intel oneMKL DFTI SUCCESS: No error 2D complex commit -> status=9, msg=Intel oneMKL DFTI ERROR: Transforms with number of points N of a non-unit stride dimension exceeding 2^(27-p) - 1 for N a power-of-two, or 2^(23-p) - 1 for N not a power-of-two, are currently not supported, where p=0 for single precision and p=1 for double precision 2D real create -> status=0, msg=Intel oneMKL DFTI SUCCESS: No error 2D real commit -> status=3, msg=Intel oneMKL DFTI ERROR: Inconsistent configuration parameters
Code:
static void DebugOut(const char* text)
{
OutputDebugStringA(text);
}
static void DebugStatus(const char* name, MKL_LONG status)
{
char buffer[1024];
_snprintf_s(
buffer,
sizeof(buffer),
_TRUNCATE,
"%s -> status=%ld, msg=%s\n",
name,
status,
DftiErrorMessage(status));
OutputDebugStringA(buffer);
}
static void TestDftiMinimal()
{
MKL_LONG status = 0;
DFTI_DESCRIPTOR_HANDLE h = nullptr;
{
status = DftiCreateDescriptor(&h, DFTI_SINGLE, DFTI_REAL, 1, (MKL_LONG)16);
DebugStatus("1D real create", status);
if (status == DFTI_NO_ERROR)
{
status = DftiCommitDescriptor(h);
DebugStatus("1D real commit", status);
DftiFreeDescriptor(&h);
}
}
{
MKL_LONG dims[2] = { 16, 16 };
status = DftiCreateDescriptor(&h, DFTI_SINGLE, DFTI_COMPLEX, 2, dims);
DebugStatus("2D complex create", status);
if (status == DFTI_NO_ERROR)
{
status = DftiCommitDescriptor(h);
DebugStatus("2D complex commit", status);
DftiFreeDescriptor(&h);
}
}
{
MKL_LONG dims[2] = { 16, 16 };
status = DftiCreateDescriptor(&h, DFTI_SINGLE, DFTI_REAL, 2, dims);
DebugStatus("2D real create", status);
if (status == DFTI_NO_ERROR)
{
status = DftiCommitDescriptor(h);
DebugStatus("2D real commit", status);
DftiFreeDescriptor(&h);
}
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for posting in the forum!
For the 2D complex case, I didn't manage to reproduce it. Could you show more details how it was built?
For the 2D real case, strides need to be set explicitly. After setting both strides, the code runs with no error.
Best,
Fengrui
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for posting in the forum!
For the 2D complex case, I didn't manage to reproduce it. Could you show more details how it was built?
For the 2D real case, strides need to be set explicitly. After setting both strides, the code runs with no error.
Best,
Fengrui
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Fengrui,
I solved the problem. I had mkl_intel_ilp64.lib instead of mkl_intel_lp64.lib in AdditionalDependencies.
Regards,
Jörg
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page