summaryrefslogtreecommitdiff
path: root/scripts/generator
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-10-25 19:45:57 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2016-10-25 19:45:57 +0200
commit926aca53a0de9250a9f7d42026fb54995668dc5b (patch)
tree4574c1675a0fdc0d1439fd3637437f6e6d3432cf /scripts/generator
parent59183b7d79b70d918562d5048e521633d425ca1c (diff)
Made the Netlib CBLAS API use the same enums with prefixes as the regular C API of CLBlast
Diffstat (limited to 'scripts/generator')
-rwxr-xr-xscripts/generator/generator.py22
-rw-r--r--scripts/generator/generator/cpp.py1
-rw-r--r--scripts/generator/generator/routine.py2
3 files changed, 13 insertions, 12 deletions
diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py
index 99edf355..a9169872 100755
--- a/scripts/generator/generator.py
+++ b/scripts/generator/generator.py
@@ -41,7 +41,7 @@ FILES = [
"/include/clblast_blas.h",
"/src/clblast_blas.cpp",
]
-HEADER_LINES = [117, 73, 118, 22, 29, 41, 44, 32]
+HEADER_LINES = [117, 73, 118, 22, 29, 41, 47, 32]
FOOTER_LINES = [17, 80, 19, 18, 6, 6, 9, 3]
# Different possibilities for requirements
@@ -67,8 +67,8 @@ def size_helper(condition, size_one, size_two, multiplier):
def layout_transpose_condition(prefix):
- return "(layout == Layout::kColMajor && " + prefix + "_transpose != Transpose::kNo) || " +\
- "(layout == Layout::kRowMajor && " + prefix + "_transpose == Transpose::kNo)"
+ return "(layout == CLBlastLayoutColMajor && " + prefix + "_transpose != CLBlastTransposeNo) || " +\
+ "(layout == CLBlastLayoutRowMajor && " + prefix + "_transpose == CLBlastTransposeNo)"
# Different possibilities for the vector and matrix sizes
@@ -79,20 +79,20 @@ ym = "m * y_inc"
an = "n * a_ld"
apn = "((n*(n+1)) / 2)"
cn = "n * c_ld"
-xmn = size_helper("a_transpose != Transpose::kNo", "m", "n", "x_inc")
-ynm = size_helper("a_transpose != Transpose::kNo", "n", "m", "y_inc")
-amn = size_helper("layout == Layout::kRowMajor", "m", "n", "a_ld")
-amns = size_helper("side == Side::kLeft", "m", "n", "a_ld")
+xmn = size_helper("a_transpose != CLBlastTransposeNo", "m", "n", "x_inc")
+ynm = size_helper("a_transpose != CLBlastTransposeNo", "n", "m", "y_inc")
+amn = size_helper("layout == CLBlastLayoutRowMajor", "m", "n", "a_ld")
+amns = size_helper("side == CLBlastSideLeft", "m", "n", "a_ld")
amk = size_helper(layout_transpose_condition("a"), "m", "k", "a_ld")
ank = size_helper(layout_transpose_condition("a"), "n", "k", "a_ld")
ankab = size_helper(layout_transpose_condition("ab"), "n", "k", "a_ld")
bkn = size_helper(layout_transpose_condition("b"), "k", "n", "b_ld")
bnkab = size_helper(layout_transpose_condition("ab"), "n", "k", "b_ld")
-bmn = size_helper("layout == Layout::kRowMajor", "m", "n", "b_ld")
+bmn = size_helper("layout == CLBlastLayoutRowMajor", "m", "n", "b_ld")
bnma = size_helper(layout_transpose_condition("a"), "n", "m", "b_ld")
-cmn = size_helper("layout == Layout::kRowMajor", "m", "n", "c_ld")
-ammn = size_helper("layout == Layout::kRowMajor", "m", "((side == Side::kLeft) ? m : n)", "a_ld")
-bmnn = size_helper("layout == Layout::kRowMajor", "((side == Side::kLeft) ? m : n)", "n", "b_ld")
+cmn = size_helper("layout == CLBlastLayoutRowMajor", "m", "n", "c_ld")
+ammn = size_helper("layout == CLBlastLayoutRowMajor", "m", "((side == CLBlastSideLeft) ? m : n)", "a_ld")
+bmnn = size_helper("layout == CLBlastLayoutRowMajor", "((side == CLBlastSideLeft) ? m : n)", "n", "b_ld")
# ==================================================================================================
diff --git a/scripts/generator/generator/cpp.py b/scripts/generator/generator/cpp.py
index 23a2207c..eafbea30 100644
--- a/scripts/generator/generator/cpp.py
+++ b/scripts/generator/generator/cpp.py
@@ -126,6 +126,7 @@ def clblast_blas_cc(routine):
# Copy data structures to the device
for i, name in enumerate(routine.inputs + routine.outputs):
result += " " + routine.set_size(name, routine.buffer_sizes[i]) + NL
+ for i, name in enumerate(routine.inputs + routine.outputs):
result += " " + routine.create_buffer(name, flavour.buffer_type) + NL
for name in routine.inputs + routine.outputs:
prefix = "" if name in routine.outputs else "const "
diff --git a/scripts/generator/generator/routine.py b/scripts/generator/generator/routine.py
index b988c91a..c35f5b4c 100644
--- a/scripts/generator/generator/routine.py
+++ b/scripts/generator/generator/routine.py
@@ -548,7 +548,7 @@ class Routine:
def arguments_def_netlib(self, flavour):
"""As above, but for the Netlib CBLAS API"""
- return (self.options_def() + self.sizes_def_netlib() +
+ return (self.options_def_c() + self.sizes_def_netlib() +
list(chain(*[self.buffer_def_pointer(b, flavour) for b in self.scalar_buffers_first()])) +
self.scalar_def_void("alpha", flavour) +
list(chain(*[self.buffer_def_pointer(b, flavour) for b in self.buffers_first()])) +