Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6975 Discussions

In my program, a thread is stop at the intel mkl API DftiComputeForward randomly, Please give me a mind to solve the problem

XY__Yu
Beginner
274 Views
In my program, a thread is stop at the intel mkl API DftiComputeForward randomly, Please give me a mind to solve the problem
0 Kudos
4 Replies
Gennady_F_Intel
Moderator
274 Views

There are many reasons why this may happen. could you, for example, try to run this code with 1 thread. ( MKL_NUM_THREADS = 1). 

0 Kudos
XY__Yu
Beginner
274 Views

@Gennady F. (Intel)

Hello, Thanks for your comments firstly, but there is a critical section to ensure that only one dfticopmputeforward API can be running at the same time; Additionally, I set the DFTI_NUMBER_OF_USER_THREADS value as 10 by API setvalue(), and API DftiComputeForward is called via a thread managed by system thread pool.

0 Kudos
Gennady_F_Intel
Moderator
274 Views

- you may try to prepare the reproducer and share it. we will take a look at this problem, reproduce the issue and investigate the reasons of this failure...  In the case if you don't use the latest version - pls try to take the latest version and check if the problem still exists with the latest version 2018.1.

0 Kudos
XY__Yu
Beginner
274 Views

@Gennady F. (Intel)

Hi,Gennady

I analyzed the dump file with windbug, and the following text is call stack of the thread who stop at DFTIComputeBackward; I found it always wait a critical section;Thanks a lot.

00000000`76f18f58 : 00000000`00003f00 00000000`00000900 ffffffff`ffffffff 00000003`33180a60 : ntdll!NtWaitForSingleObject+0xa
00000000`76f18e54 : 00000000`00000000 00000000`9e6bb5e8 00000000`9e6bb200 00000000`9e6bb5b0 : ntdll!RtlpWaitOnCriticalSection+0xe8
00000001`800a012a : 00000000`000076f6 00000000`9e6bb5b0 00000000`9e6bb5a8 00000000`0000b660 : ntdll!RtlEnterCriticalSection+0xd1
00000001`8007bcbd : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : libiomp5md!_kmp_invoke_microtask+0x68a
00000001`8004d9dc : 776f2e6e`00000000 00000000`00000000 00000000`76a8fe40 00000000`00000000 : libiomp5md!_kmp_fork_call+0xafad
000007fe`e2781573 : 00000000`00000000 00000000`00000000 00000000`00000000 00000001`8006b833 : libiomp5md!_kmpc_barrier+0x6c
000007fe`e2780d18 : 00000000`7eef2d80 00000000`00000080 00000000`7eef2d80 00000001`800a0489 : mkl_intel_thread!mkl_dft_bless_node_omp+0x293
00000001`8009fb2c : 72d80001`00000000 00000000`00000001 00000000`00000000 00000000`b8cad640 : mkl_intel_thread!mkl_pds_lp64_get_dynamic_pardiso+0x1f8
00000001`80070c3a : 00000000`00000002 00000000`0000000d 00000000`00000000 00000000`0000000d : libiomp5md!_kmp_invoke_microtask+0x8c
00000001`80071dc9 : 00000000`00000000 00000000`00000000 00000000`72d83320 00000000`000003ff : libiomp5md!_kmp_release+0x3e3a
00000001`8004cf49 : 00000000`00000040 00000000`00004840 00000000`00004850 00000000`00004850 : libiomp5md!_kmp_fork_call+0x10b9
000007fe`e2780c46 : 00000000`00000000 000007fe`e22cbc8d 000007fe`e2780cc7 00000000`a4f8eac8 : libiomp5md!_kmpc_fork_call+0x69
000007fe`e2781c71 : 00000000`00000000 000007fe`e2781360 00000000`a4f8eb30 00000000`00000000 : mkl_intel_thread!mkl_pds_lp64_get_dynamic_pardiso+0x126
000007fe`e026e979 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : mkl_intel_thread!mkl_dft_c1d_via_2d_b+0xf1
000007fe`eab210d5 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : mkl_avx2!mkl_dft_avx2_zzd2_r_out_dft+0x10d2b9
000007fe`efc2dd29 : 00000003`331807c0 00000000`7d1c42e0 00000000`3f7aa3b5 000007fe`f11e5e90 : mkl_rt!DftiComputeBackward+0x1a9

 

0 Kudos
Reply