[clblas] 28/67: AutoGemm KernelOpenCL can generate standalone kernels
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Tue Oct 27 08:02:12 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch master
in repository clblas.
commit f6ae9ac1f6d3fa9bca1dad6f98605e4054183142
Author: David Tanner <guacamoleo at gmail.com>
Date: Fri Sep 18 13:44:43 2015 -0500
AutoGemm KernelOpenCL can generate standalone kernels
---
src/library/blas/AutoGemm/KernelOpenCL.py | 46 ++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/src/library/blas/AutoGemm/KernelOpenCL.py b/src/library/blas/AutoGemm/KernelOpenCL.py
index 0b671f0..03f5a8c 100644
--- a/src/library/blas/AutoGemm/KernelOpenCL.py
+++ b/src/library/blas/AutoGemm/KernelOpenCL.py
@@ -4,6 +4,7 @@ import copy
import Common
import KernelParameters
import AutoGemmParameters
+import argparse
##############################################################################
@@ -541,9 +542,46 @@ def writeOpenCLKernels():
# Main
################################################################################
if __name__ == "__main__":
- if len(sys.argv) == 2:
- Common.setOutputPath(sys.argv[1])
+ ap = argparse.ArgumentParser(description="KernelOpenCL")
+ ap.add_argument("precision", choices=["s","d","c","z"], help="precision" )
+ ap.add_argument("order", choices=["row","col"], help="order: row major or column major" )
+ ap.add_argument("transA", choices=["N","T", "C"], help="transA" )
+ ap.add_argument("transB", choices=["N","T", "C"], help="transB" )
+ ap.add_argument("beta", choices=[0, 1], type=int, help="0 for beta is zero, 1 for beta is non-zero" )
+ ap.add_argument("workGroupNumRows", type=int )
+ ap.add_argument("workGroupNumCols", type=int )
+ ap.add_argument("microTileNumRows", type=int )
+ ap.add_argument("microTileNumCols", type=int )
+ ap.add_argument("unroll", type=int, help="number of iterations to unroll the loop over k" )
+ ap.add_argument("outputPath", default=".", help="output path; %s will be appended to path" % Common.getRelativeKernelSourcePath() )
+
+ args = ap.parse_args()
+
+ kernel = KernelParameters.KernelParameters()
+ kernel.precision = args.precision
+ if args.order == "col":
+ kernel.order = "clblasColumnMajor"
else:
- print "Warning: No output path specified; default is working directory."
- writeOpenCLKernels()
+ kernel.order = "clblasRowMajor"
+ kernel.transA = args.transA
+ kernel.transB = args.transB
+ kernel.beta = args.beta
+ kernel.workGroupNumRows = args.workGroupNumRows
+ kernel.workGroupNumCols = args.workGroupNumCols
+ kernel.microTileNumRows = args.microTileNumRows
+ kernel.microTileNumCols = args.microTileNumCols
+ kernel.unroll = args.unroll
+ Common.setOutputPath(args.outputPath)
+
+ kernel.macroTileNumRows = kernel.workGroupNumRows * kernel.microTileNumRows
+ kernel.macroTileNumCols = kernel.workGroupNumCols * kernel.microTileNumCols
+
+ if not os.path.exists( Common.getKernelSourcePath() ):
+ os.makedirs( Common.getKernelSourcePath() )
+
+ writeOpenCLKernelToFile(kernel)
+
+ kernelName = kernel.getName()
+ kernelFileName = Common.getKernelSourcePath() + kernelName +"_src.cpp"
+ print "kernel \"%s\" written to %s" % (kernelName, kernelFileName)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/clblas.git
More information about the debian-science-commits
mailing list