def test(ATLdir, ARCH, pre, blas, N, M, lda, rout, cc=None, ccf=None, opt=""): l1blas = kernels.GetFKOlevel1Blas() l2blas = kernels.GetLevel2Blas() l3blas = kernels.GetLevel3Blas() #fkogemm = kernels.GetAllFKOGEMM() if blas in l1blas: return l1cmnd.test(ATLdir, ARCH, pre, blas, N, rout, cc, ccf, opt) elif blas in l2blas: return l2cmnd.test(ATLdir, ARCH, pre, blas, N, M, lda, rout, cc, ccf, opt) #right now, we support gemm kernel with beta = 1, may change the kernel name # like: gemmkb1 elif blas in l3blas: return l3cmnd.test(ATLdir, ARCH, pre, blas, N, 1, rout, cc, ccf, opt) elif blas in kernels.GetAllFKOGEMM(): return l3cmnd.test(ATLdir, ARCH, pre, blas, N, 1, rout, cc, ccf, opt) else: print "UNKNOWN KERNEL [FOR CMND] !!! " return -1
nargs = len(sys.argv) if nargs < 4: print 'USAGE: %s <pre> <blas> <file> [<N> <uopt> <TEST> <CC> <CCF>]' % sys.argv[0] sys.exit(1) pre = sys.argv[1] blas = sys.argv[2] file = sys.argv[3] if nargs > 4 : N = int(sys.argv[4]) if nargs > 5 : TEST = int(sys.argv[5]) if nargs > 6 : uopt = sys.argv[6] if nargs > 7 : CC = sys.argv[7] if nargs > 8 : CCF = sys.argv[8] #opt = "-X 1 -Y 1 " + uopt #opt = "-X 1 -Y 1 -Fx 16 -Fy 16 " + uopt opt = "-X 1 -Y 1 -Fx 32 -Fy 32 " + uopt [t0,mf] = l1cmnd.time(ATLdir, ARCH, pre, blas, N, file, cc=CC, ccf=CCF, opt=opt) if TEST: i = l1cmnd.test(ATLdir, ARCH, pre, blas, N, file, cc=CC, ccf=CCF, opt=teopt) if i : PF = "FAIL" else : PF = "PASS" else : PF = "SKIP" print "%s%s-%s : time=%e, mflop=%.2f -- %s" % (pre, blas, file, t0, mf, PF)