- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
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);
}
}
}
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
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
Ссылка скопирована
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
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
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Thanks Fengrui,
I solved the problem. I had mkl_intel_ilp64.lib instead of mkl_intel_lp64.lib in AdditionalDependencies.
Regards,
Jörg
- Подписка на RSS-канал
- Отметить тему как новую
- Отметить тему как прочитанную
- Выполнить отслеживание данной Тема для текущего пользователя
- Закладка
- Подписаться
- Страница в формате печати