import Common import Includes import KernelSelection import AutoGemmParameters import KernelOpenCL ################################################################################ # Main ################################################################################ if __name__ == "__main__": # parse arguments ap = argparse.ArgumentParser(description="AutoGemm") ap.add_argument("--output-path", dest="output" ) ap.add_argument("--opencl-compiler-version", dest="clCompilerVersion", action="store", choices=["1.1", "1.2", "2.0" ]) ap.add_argument("--architecture", dest="architecture", action="store", choices=["Hawaii", "Fiji" ]) args = ap.parse_args() if args.output: Common.setOutputPath(args.output) else: print("AutoGemm.py: Warning: No output path specified; default is working directory.") print("AutoGemm.py: using OpenCL " + args.clCompilerVersion + " compiler") Common.setClCompilerVersion(args.clCompilerVersion) AutoGemmParameters.setArchitecture(args.architecture) KernelOpenCL.writeOpenCLKernels() KernelSelection.writeKernelSelection() Includes.writeIncludes()
# for tile parameters for tile in tiles: kernel.useTile(tile) kss.newKernel(kernel) kss.writeToFile() ######################################## # kernel selection ks = KernelSelection( \ AutoGemmParameters.precisions, \ AutoGemmParameters.orders, \ AutoGemmParameters.transposes, \ AutoGemmParameters.betas, \ AutoGemmParameters.unrolls, \ AutoGemmParameters.kernelSelectionData ) ks.writeToFile() ################################################################################ # Main ################################################################################ if __name__ == "__main__": if len(sys.argv) == 3: Common.setOutputPath(sys.argv[1]) AutoGemmParameters.setArchitecture(sys.argv[2]) writeKernelSelection() else: print("USAGE: python KernelSelection.py output_path architecture")