Floating point exception is observed when KC is set to18 in bli_cnt_init_<arch>.c file
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.
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?