# -------------------------------------------------------------------------- # # input.operations # BLIS test suite # # This file contains input values that control which BLIS operations are # tested as well as how those test runs are parameterized. We will now # describe how each section or line type may be edited. # # ENABLING/DISABLING ENTIRE SECTIONS # The values in the "Section overrides" section allow you to disable # all operations in a given "level". Enabling a level here by itself # does not enable every operation in that level; it simply means that # the individual switches for each operation (in that level) determine # whether or not the tests are executed. Use 1 to enable a section, or # 0 to disable. # # ENABLING/DISABLING INDIVIDUAL OPERATION TESTS # Given that an operation's section override switch is set to 1 # (enabled, whether or not that operation will get tested is determined # by its local switch. For example, if the level-1v section override is # set to 1, and there is a 1 on the line marked "addv", then the addv # operation will be tested. Similarly, a 0 would cause addv to not be # tested. NOTE: You may ignore the lines marked "test sequential # front-end." These lines are for future use, to distinguish tests of # the sequential implementation from tests of the multithreaded # implementation. For now, BLIS does not contain separate APIs for # multithreaded execution, even though multithreading is supported. # So, these should be left set to 1. # # CHANGING PROBLEM SIZE/SHAPES TESTED # The problem sizes tested by an operation are determined by the # dimension specifiers on the line marked "dimensions: ". # If, for example, contains two dimension labels (e.g. # "m n"), then the line should begin with two dimension specifiers. # Dimension specifiers of -1 cause the corresponding dimension to be # bound to the problem size, which is determined by values set in # input.general. Positive values cause the corresponding dimension to # be fixed to that value and held constant. # # Examples of dimension specifiers (where the dimensions are m and n): # # -1 -1 Dimensions m and n grow with problem size (resulting in # square matrices). # -1 150 Dimension m grows with problem size and n is fixed at # 150. # -1 -2 Dimension m grows with problem size and n grows # proportional to half the problem size. # # CHANGING PARAMTER COMBINATIONS TESTED # The parameter combinations tested by an operation are determined by # the parameter specifier characters on the line marked "parameters: # ". If, for example, contains two # parameter labels (e.g. "transa conjx"), then the line should contain # two parameter specifier characters. The '?' specifier character # serves as a wildcard--it causes all possible values of that parameter # to be tested. A character such as 'n' or 't' causes only that value # to be tested. # # Examples of parameter specifiers (where the parameters are transa # and conjx): # # ?? All combinations of the transa and conjx parameters are # tested: nn, nc, tn, tc, cn, cc, hn, hc. # ?n conjx is fixed to "no conjugate" but transa is allowed # to vary: nn, tn, cn, hn. # hc Only the case where transa is "Hermitian-transpose" and # conjx is "conjugate" is tested. # # Here is a full list of the parameter types used by the various BLIS # operations along with their possible character encodings: # # side: l,r left, right # uplo: l,u lower, upper # trans: n,t,c,h no transpose, transpose, conjugate, Hermitian- # transpose (i.e. conjugate-transpose) # conj: n,c no conjugate, conjugate # diag: n,u non-unit diagonal, unit diagonal # # --- Section overrides ---------------------------------------------------- 1 # Utility 1 # Level-1v 1 # Level-1m 1 # Level-1f kernels 1 # Level-2 1 # Level-3 micro-kernels 1 # Level-3 # --- Utility -------------------------------------------------------------- 1 # randv 1 # test sequential front-end -1 # dimensions: m 1 # randm 1 # test sequential front-end -1 -1 # dimensions: m n # --- Level-1v ------------------------------------------------------------- 1 # addv 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjx 1 # axpyv 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjx 1 # copyv 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjx 1 # dotv 1 # test sequential front-end -1 # dimensions: m ?? # parameters: conjx conjy 1 # dotxv 1 # test sequential front-end -1 # dimensions: m ?? # parameters: conjx conjy 1 # normfv 1 # test sequential front-end -1 # dimensions: m 1 # scalv 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjbeta 1 # scal2v 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjx 1 # setv 1 # test sequential front-end -1 # dimensions: m 1 # subv 1 # test sequential front-end -1 # dimensions: m ? # parameters: conjx # --- Level-1m ------------------------------------------------------------- 1 # addm 1 # test sequential front-end -1 -2 # dimensions: m n ? # parameters: transa 1 # axpym 1 # test sequential front-end -1 -1 # dimensions: m n ? # parameters: transa 1 # copym 1 # test sequential front-end -1 -2 # dimensions: m n ? # parameters: transa 1 # normfm 1 # test sequential front-end -1 -2 # dimensions: m n 1 # scalm 1 # test sequential front-end -1 -2 # dimensions: m n ? # parameters: conjbeta 1 # scal2m 1 # test sequential front-end -1 -2 # dimensions: m n ? # parameters: transa 1 # setm 1 # test sequential front-end -1 -2 # dimensions: m n 1 # subm 1 # test sequential front-end -1 -2 # dimensions: m n ? # parameters: transa # --- Level-1f kernels ----------------------------------------------------- 1 # axpy2v 1 # test sequential front-end -1 # dimensions: m ?? # parameters: conjx conjy 1 # dotaxpyv 1 # test sequential front-end -1 # dimensions: m ??? # parameters: conjxt conjx conjy 1 # axpyf 1 # test sequential front-end -1 # dimensions: m ?? # parameters: conja conjx 1 # dotxf 1 # test sequential front-end -1 # dimensions: m ?? # parameters: conjat conjx 1 # dotxaxpyf 1 # test sequential front-end -1 # dimensions: m ???? # parameters: conjat conja conjw conjx # --- Level-2 -------------------------------------------------------------- 1 # gemv 1 # test sequential front-end -1 -2 # dimensions: m n ?? # parameters: transa conjx 1 # ger 1 # test sequential front-end -1 -2 # dimensions: m n ?? # parameters: conjx conjy 1 # hemv 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploa conja conjx 1 # her 1 # test sequential front-end -1 # dimensions: m ?? # parameters: uploc conjx 1 # her2 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploc conjx conjy 1 # symv 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploa conja conjx 1 # syr 1 # test sequential front-end -1 # dimensions: m ?? # parameters: uploc conjx 1 # syr2 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploc conjx conjy 1 # trmv 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploa transa diaga 1 # trsv 1 # test sequential front-end -1 # dimensions: m ??? # parameters: uploa transa diaga # --- Level-3 micro-kernels ------------------------------------------------ 1 # gemm 1 # test sequential micro-kernel -1 # dimensions: k 1 # trsm 1 # test sequential micro-kernel ? # parameters: uploa 1 # gemmtrsm 1 # test sequential micro-kernel -1 # dimensions: k ? # parameters: uploa # --- Level-3 -------------------------------------------------------------- 1 # gemm 1 # test sequential front-end -1 -1 -1 # dimensions: m n k ?? # parameters: transa transb 1 # hemm 1 # test sequential front-end -1 -1 # dimensions: m n ???? # parameters: side uploa conja transb 1 # herk 1 # test sequential front-end -1 -1 # dimensions: m k ?? # parameters: uploc transa 1 # her2k 1 # test sequential front-end -1 -1 # dimensions: m k ??? # parameters: uploc transa transb 1 # symm 1 # test sequential front-end -1 -1 # dimensions: m n ???? # parameters: side uploa conja transb 1 # syrk 1 # test sequential front-end -1 -1 # dimensions: m k ?? # parameters: uploc transa 1 # syr2k 1 # test sequential front-end -1 -1 # dimensions: m k ??? # parameters: uploc transa transb 1 # trmm 1 # test sequential front-end -1 -1 # dimensions: m n ???? # parameters: side uploa transa diaga 1 # trmm3 1 # test sequential front-end -1 -1 # dimensions: m n ????n # parameters: side uploa transa diaga transb 1 # trsm 1 # test sequential front-end -1 -1 # dimensions: m n ???? # parameters: side uploa transa diaga