MKL fails on gemms calls too. At least in the past, not sure about the latest version.
> On Jun 1, 2020, at 10:48 PM, Jeff Hammond <[email protected]> wrote: > > I assume it's MKL sparse that fails for empty matrices, because the BLAS and > LAPACK should follow the Netlib convention. > > I'm sorry that MKL is unwilling to do nothing for you :-) > > Jeff > > On Sat, May 30, 2020 at 4:26 PM Mills, Richard Tran via petsc-dev > <[email protected] <mailto:[email protected]>> wrote: > Thanks for the replies, everyone. It suppose is not actually that hard for me > to handle these dimensions properly -- I just hadn't personally encountered > or thought much about when such operations with empty matrices might arise, > and was initially puzzled about what multiplication by an "empty" matrix even > means. I think I see now why I need to put in the work to handle these cases > properly. (Sure wish that MKL could just do it, though!) > > --Richard > > On 5/30/20 4:09 PM, Stefano Zampini wrote: >>> On May 31, 2020, at 1:03 AM, Jed Brown <[email protected]> >>> <mailto:[email protected]> wrote: >>> >>> Stefano Zampini <[email protected]> >>> <mailto:[email protected]> writes: >>> >>>> If A is 0x8 and B is 8x5 then C is correct to be of size 0x5. The rows and >>>> columns of the resulting matrix have to follow the rules. >>> Right, I think if you said C is 0x0 (which seems like Richard's proposal), >>> you'd need to relax shape compatibility logic in many places, including in >>> ways that might produce confusing errors. >>> >> Richard >> >> In the triple matrix product case, your code will break, because the >> operation will no longer be associative >> >> A 3x0, B 0x8, C 8x7 -> (ABC) is a valid 3x7 matrix (empty) >> >> If I understand you right, (AB) would be a 0x0 matrix, and it can no >> longer be multiplied against C >> >>> Richard, what is the hardship in preserving the shape relations? > > > > -- > Jeff Hammond > [email protected] <mailto:[email protected]> > http://jeffhammond.github.io/ <http://jeffhammond.github.io/>
