blis icon indicating copy to clipboard operation
blis copied to clipboard

Floating point exception is observed when KC is set to18 in bli_cnt_init_<arch>.c file

Open MangalaVenakat opened this issue 4 years ago • 1 comments

While tuning KC value for m = 11, n = 326, k = 11 we tried with 18 which is less than 20 For above size, SUP path will be choosen. Dividie by Zero exception is observed in bli_xgemmsup_ref_var1n() function for all datatypes. We derive KC using below equation and KC is evaluted as 0 Equation line number 332: KC = (((KC0/5)/4)*4);

Exception is seen when deriving pc_left = k_local % KC; As KC = 0 we are getting exception for % operation.

MangalaVenakat avatar May 06 '21 13:05 MangalaVenakat

Thanks for the report, @MangalaVenakat.

The problem is that the code you reference, which modifies KC for use with sup, assumes that KC will be chosen to be rather large (e.g. 256).

As a separate but related matter, this way of adjusting KC is one of the few aspects of my sup implementation that I was unsatisfied with. I don't know why shrinking the value for KC worked like in my tests, but it did. Furthermore, I didn't have time to come up with something less ugly when I first wrote the gemmsup code work two years ago, nor do I have time to at this moment.

Without knowing why you are using such a small value for KC, I am tempted to apply yet another hack, which is to disable the KC adjustment altogether when KC is less than 64. Would that work for you?

fgvanzee avatar May 24 '21 19:05 fgvanzee