Intel® oneAPI DPC++/C++ Compiler
Talk to fellow users of Intel® oneAPI DPC++/C++ Compiler and companion tools like Intel® oneAPI DPC++ Library, Intel® DPC++ Compatibility Tool, and Intel® Distribution for GDB*

Exception thrown for lapack::potrf call

tdot
Beginner
1,115 Views

Unable to identify why the following code is throwing the exception.  The code is shown below. The debugging back trace is provided in attached file.  Any ideas/help welcome and appreciated.

 
The following code produces a SIGABORT for the lapack::potrf call
 
        int64_t nnn = numFeeds * numFeeds;
 
        std::int64_t scratchSzF = lapack::potrf_scratchpad_size<std::complex<double>>(_queue, uplo::lower, nnn, nnn);
// 0 will be returned if host is CPU, set it to arbitrary size.  Code is running on the host; unit test
        if (scratchSzF == 0) {
          scratchSzF = 10 * nnn;
        }
 
std::vector<std::complex<double>> input;
      
        input.clear();
        // numFeeds = 2;  WORKS, no exception thrown if using this input
        // input = {{69.51, 0}, {78.54, 8.3},
        //   {78.54, -8.3}, {89.75, 0}};
        
        numFeeds = 3; // exception thrown
        input = { {69.51, 0},     {78.54, 8.3},   {85.55, 17.8},
                    {78.54, -8.3},  {89.75, 0},     {98.82, 9.9},
                    {85.55, -17.8}, {98.82, -9.9},  {109.91, 0}};
 
        // numFeeds = 4; // exception thrown
        // input = {{69.51, 0}, {78.54, 8.3}, {85.55, 17.8}, {88.52, 29.7},
        //   {78.54, -8.3}, {89.75, 0}, {98.82, 9.9}, {103.61, 23},
        //   {85.55, -17.8}, {98.82, -9.9}, {109.91, 0}, {116.64, 13.9},
        //   {88.52, -29.7}, {103.61, -23}, {116.64, -13.9}, {125.55, 0}};
 
        std::vector<std::complex<double>> scratchPad(scratchSzF, {0.0});
        sycl::buffer<std::complex<double>, 1> inputBuff(input.data(), input.size());
        sycl::buffer<std::complex<double>, 1> scratchBuff(scratchPad.data(), scratchPad.size());
        // factorize THROWS here, Jenkins build reports this:
        // Assertion false failed (located in the cancel function, line in file: 226)
        // Detailed description: Unhandled exception from enqueue task is caught
        lapack::potrf(_queue, uplo::lower, numFeeds, inputBuff, numFeeds, scratchBuff, scratchSzF);
        _queue.wait_and_throw();
        // I added the following  2 lines instead of above.  same SIGABORT issue as above
        //_queue.wait();  
        //_queue.throw_asynchronous();
       // Also throws if all 'waits' are commented out
 

 

0 Kudos
1 Reply
Alex_Y_Intel
Moderator
707 Views

Hi @tdot 
In order to investigate further, we need a complete reproducer that we can compile and execute to see the problem. Please provide a reproducer and exact commands used to reproduce the issue mentioned. 

0 Kudos
Reply