segv mkl_dcscmv from multithreaded applications

segv mkl_dcscmv from multithreaded applications

benjamin.gu@gmail.com的头像

dear support,

i having a segv from calling mkl_dcscmv from my multithreaded applications. the same code works well if i can it from single thread. here is the message i got from gdb, any other info i can provide to help you find out the problem,

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2aac4dad3940 (LWP 13096)]
0x0000000000551236 in mkl_spblas_lp64_mc3_dcsr0tg__c__mvout_par ()
(gdb) where
#0 0x0000000000551236 in mkl_spblas_lp64_mc3_dcsr0tg__c__mvout_par ()
#1 0x00000000004fd30b in mkl_spblas_lp64_dcsr0tg__c__mvout_omp ()
#2 0x00000000004fbcce in mkl_spblas_lp64_mkl_dcscmv ()

7 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项.
Gennady Fedorov (Intel)的头像

How can we reproduce the problem? Can you give us the example to check the problem on our side?
also what mk version you are using ?

benjamin.gu@gmail.com的头像

i am using version 12.1. but the same problem happens with 12.0 and previous versions. I dont know how to help you reproduce the problem. honestly i can't give you my code to debug.:-) is there any other way to debug? does stack trace help?

Gennady Fedorov (Intel)的头像

stack will no helps with that case. Can you prepare the test which someone from mkl team can compile and reproduce the problem on our side?

Sergey Pudov (Intel)的头像

Could you please provide us with matrix sizes and parameters you use for calling mkl_dcsrmv?

qweasd q.的头像

Quote:

Sergey Pudov (Intel) wrote:

Could you please provide us with matrix sizes and parameters you use for calling mkl_dcsrmv?

The author of this thread seems to have problems with dcsCmv, not dcsRmv. He didn't provide any test program, however, if you want to reproduce the segmentation fault, just download the one I provided for dcsRmv here http://software.intel.com/en-us/forums/topic/339743, change the latest calls from


char transb = 'T';

mkl_dcsrmv(&transb, &n, &k, &one, matdescra, C, J, &_I->operator[](0), &_I->operator[](1), rhsT, &one, xT);


to

char transb = 'N';

mkl_dcscmv(&transb, &k, &n, &one, matdescra, C, J, &_I->operator[](0), &_I->operator[](1), rhsT, &one, xT);


and once again, you will a segmentation fault iff OMP_NUM_THREADS>1, this time with dcscmv.

Sergey Pudov (Intel)的头像

Sorry, it was a typo in my previous post: I meant mkl_dcscmv functionality of course.
Re your example: we are able to reproduce the issue with dcsrmv. Right now we need to understand whether both threads related to the same issue in dcs[c|r]mv functionality or not. So requested info still required for further investigations.

登陆并发表评论。