summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG4
-rw-r--r--CMakeLists.txt13
-rwxr-xr-xscripts/database/database.py29
-rw-r--r--scripts/database/database/clblast.py168
-rw-r--r--scripts/database/database/defaults.py84
-rw-r--r--scripts/database/database/io.py43
-rw-r--r--src/clblast.cpp15
-rw-r--r--src/clpp11.hpp39
-rw-r--r--src/database/apple_cpu_fallback.hpp56
-rw-r--r--src/database/database.cpp144
-rw-r--r--src/database/database.hpp77
-rw-r--r--src/database/database_structure.hpp67
-rw-r--r--src/database/kernel_selection.hpp42
-rw-r--r--src/database/kernels/copy.hpp354
-rw-r--r--src/database/kernels/copy/copy.hpp14
-rw-r--r--src/database/kernels/copy/copy_16.hpp54
-rw-r--r--src/database/kernels/copy/copy_32.hpp162
-rw-r--r--src/database/kernels/copy/copy_3232.hpp151
-rw-r--r--src/database/kernels/copy/copy_64.hpp131
-rw-r--r--src/database/kernels/copy/copy_6464.hpp131
-rw-r--r--src/database/kernels/invert.hpp20
-rw-r--r--src/database/kernels/pad.hpp362
-rw-r--r--src/database/kernels/pad/pad.hpp14
-rw-r--r--src/database/kernels/pad/pad_16.hpp54
-rw-r--r--src/database/kernels/pad/pad_32.hpp162
-rw-r--r--src/database/kernels/pad/pad_3232.hpp161
-rw-r--r--src/database/kernels/pad/pad_64.hpp131
-rw-r--r--src/database/kernels/pad/pad_6464.hpp131
-rw-r--r--src/database/kernels/padtranspose.hpp361
-rw-r--r--src/database/kernels/padtranspose/padtranspose.hpp14
-rw-r--r--src/database/kernels/padtranspose/padtranspose_16.hpp54
-rw-r--r--src/database/kernels/padtranspose/padtranspose_32.hpp161
-rw-r--r--src/database/kernels/padtranspose/padtranspose_3232.hpp161
-rw-r--r--src/database/kernels/padtranspose/padtranspose_64.hpp131
-rw-r--r--src/database/kernels/padtranspose/padtranspose_6464.hpp131
-rw-r--r--src/database/kernels/transpose.hpp350
-rw-r--r--src/database/kernels/transpose/transpose.hpp14
-rw-r--r--src/database/kernels/transpose/transpose_16.hpp54
-rw-r--r--src/database/kernels/transpose/transpose_32.hpp162
-rw-r--r--src/database/kernels/transpose/transpose_3232.hpp153
-rw-r--r--src/database/kernels/transpose/transpose_64.hpp131
-rw-r--r--src/database/kernels/transpose/transpose_6464.hpp123
-rw-r--r--src/database/kernels/xaxpy.hpp362
-rw-r--r--src/database/kernels/xaxpy/xaxpy.hpp14
-rw-r--r--src/database/kernels/xaxpy/xaxpy_16.hpp54
-rw-r--r--src/database/kernels/xaxpy/xaxpy_32.hpp162
-rw-r--r--src/database/kernels/xaxpy/xaxpy_3232.hpp161
-rw-r--r--src/database/kernels/xaxpy/xaxpy_64.hpp131
-rw-r--r--src/database/kernels/xaxpy/xaxpy_6464.hpp131
-rw-r--r--src/database/kernels/xdot.hpp292
-rw-r--r--src/database/kernels/xdot/xdot.hpp14
-rw-r--r--src/database/kernels/xdot/xdot_16.hpp54
-rw-r--r--src/database/kernels/xdot/xdot_32.hpp137
-rw-r--r--src/database/kernels/xdot/xdot_3232.hpp136
-rw-r--r--src/database/kernels/xdot/xdot_64.hpp107
-rw-r--r--src/database/kernels/xdot/xdot_6464.hpp107
-rw-r--r--src/database/kernels/xgemm.hpp348
-rw-r--r--src/database/kernels/xgemm/xgemm.hpp14
-rw-r--r--src/database/kernels/xgemm/xgemm_16.hpp45
-rw-r--r--src/database/kernels/xgemm/xgemm_32.hpp162
-rw-r--r--src/database/kernels/xgemm/xgemm_3232.hpp153
-rw-r--r--src/database/kernels/xgemm/xgemm_64.hpp131
-rw-r--r--src/database/kernels/xgemm/xgemm_6464.hpp130
-rw-r--r--src/database/kernels/xgemm_direct.hpp218
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct.hpp14
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct_16.hpp45
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct_32.hpp105
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp89
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct_64.hpp76
-rw-r--r--src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp76
-rw-r--r--src/database/kernels/xgemv.hpp306
-rw-r--r--src/database/kernels/xgemv/xgemv.hpp14
-rw-r--r--src/database/kernels/xgemv/xgemv_16.hpp46
-rw-r--r--src/database/kernels/xgemv/xgemv_32.hpp153
-rw-r--r--src/database/kernels/xgemv/xgemv_3232.hpp137
-rw-r--r--src/database/kernels/xgemv/xgemv_64.hpp122
-rw-r--r--src/database/kernels/xgemv/xgemv_6464.hpp98
-rw-r--r--src/database/kernels/xgemv_fast.hpp300
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast.hpp14
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast_16.hpp46
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast_32.hpp153
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp125
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast_64.hpp122
-rw-r--r--src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp98
-rw-r--r--src/database/kernels/xgemv_fast_rot.hpp213
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot.hpp14
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp45
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp110
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp77
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp78
-rw-r--r--src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp57
-rw-r--r--src/database/kernels/xger.hpp316
-rw-r--r--src/database/kernels/xger/xger.hpp14
-rw-r--r--src/database/kernels/xger/xger_16.hpp54
-rw-r--r--src/database/kernels/xger/xger_32.hpp145
-rw-r--r--src/database/kernels/xger/xger_3232.hpp144
-rw-r--r--src/database/kernels/xger/xger_64.hpp115
-rw-r--r--src/database/kernels/xger/xger_6464.hpp115
-rw-r--r--src/database/kernels/xtrsv.hpp20
-rw-r--r--src/routine.cpp4
-rw-r--r--src/routine.hpp4
-rw-r--r--src/tuning/tuning.hpp16
-rw-r--r--src/utilities/device_mapping.hpp51
-rw-r--r--src/utilities/utilities.cpp63
-rw-r--r--src/utilities/utilities.hpp21
105 files changed, 7584 insertions, 4107 deletions
diff --git a/CHANGELOG b/CHANGELOG
index d7d70b7a..80c05e5f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
Development (next version)
+- The tuning database now has defaults per architecture (e.g. NVIDIA Kepler SM3.5, AMD Fiji)
+- The tuning database now has a dictionary to translate vendor/device names to a common set
+- The tuners can now distinguish between different AMD GPU board names of the same architecture
- The tuners can now use particle-swarm optimisation to search more efficiently (thanks to 'mcian')
+- Further improved compilation time of database.cpp
- Various minor fixes and enhancements
- Added non-BLAS routines:
* SIM2COL/DIM2COL/CIM2COL/ZIM2COL/HIM2COL (im2col transform as used to express convolution as GEMM)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f82af47a..5d86d05d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -159,8 +159,8 @@ endif()
# Sets the supported routines and the used kernels. New routines and kernels should be added here.
set(KERNELS copy_fast copy_pad transpose_fast transpose_pad xaxpy xdot xger
xgemm xgemm_direct xgemv)
-set(DATABASES copy invert pad padtranspose transpose xaxpy xdot
- xgemm xgemm_direct xgemv xgemv_fast xgemv_fast_rot xger xtrsv)
+set(DATABASES copy pad padtranspose transpose xaxpy xdot
+ xgemm xgemm_direct xgemv xgemv_fast xgemv_fast_rot xger)
set(SAMPLE_PROGRAMS_CPP sgemm sgemm_batched)
set(SAMPLE_PROGRAMS_C sasum dgemv sgemm haxpy cache)
if(NETLIB)
@@ -194,6 +194,7 @@ set(HEADERS # such that they can be discovered by IDEs such as CLion and Visual
include/clblast_half.h
src/database/apple_cpu_fallback.hpp
src/database/database.hpp
+ src/database/database_structure.hpp
src/database/kernel_selection.hpp
src/routines/level1/xamin.hpp
src/routines/level1/xmax.hpp
@@ -202,6 +203,7 @@ set(HEADERS # such that they can be discovered by IDEs such as CLion and Visual
src/routines/common.hpp
src/utilities/buffer_test.hpp
src/utilities/clblast_exceptions.hpp
+ src/utilities/device_mapping.hpp
src/utilities/msvc.hpp
src/utilities/utilities.hpp
src/cache.hpp
@@ -230,7 +232,12 @@ foreach(ROUTINE ${LEVELX_ROUTINES})
set(HEADERS ${HEADERS} src/routines/levelx/${ROUTINE}.hpp)
endforeach()
foreach(DATABASE ${DATABASES})
- set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_16.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_32.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_64.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_3232.hpp)
+ set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_6464.hpp)
endforeach()
# Creates and links the library
diff --git a/scripts/database/database.py b/scripts/database/database.py
index e398aa30..8f3ccce6 100755
--- a/scripts/database/database.py
+++ b/scripts/database/database.py
@@ -20,14 +20,6 @@ import database.defaults as defaults
# Server storing a copy of the database
DATABASE_SERVER_URL = "https://raw.githubusercontent.com/CNugteren/CLBlast-database/master/database.json"
-# OpenCL vendor names and their short name
-VENDOR_TRANSLATION_TABLE = {
- "GenuineIntel": "Intel",
- "Intel(R) Corporation": "Intel",
- "Advanced Micro Devices, Inc.": "AMD",
- "NVIDIA Corporation": "NVIDIA",
-}
-
def remove_mismatched_arguments(database):
"""Checks for tuning results with mis-matched entries and removes them according to user preferences"""
@@ -44,12 +36,14 @@ def remove_mismatched_arguments(database):
for kernel_group_name, kernel_group in db.group_by(database["sections"], kernel_attributes):
group_by_arguments = db.group_by(kernel_group, clblast.ARGUMENT_ATTRIBUTES)
if len(group_by_arguments) != 1:
- print("[database] WARNING: entries for a single kernel with multiple argument values " + str(kernel_group_name))
- print("[database] Either quit now, or remove all but one of the argument combinations below:")
+ print("[database] WARNING: entries for a single kernel with multiple argument values " +
+ str(kernel_group_name))
+ print("[database] Either quit or remove all but one of the argument combinations below:")
for index, (attribute_group_name, mismatching_entries) in enumerate(group_by_arguments):
print("[database] %d: %s" % (index, attribute_group_name))
for attribute_group_name, mismatching_entries in group_by_arguments:
- response = user_input("[database] Remove entries corresponding to %s, [y/n]? " % str(attribute_group_name))
+ response = user_input("[database] Remove entries corresponding to %s, [y/n]? " %
+ str(attribute_group_name))
if response == "y":
for entry in mismatching_entries:
database["sections"].remove(entry)
@@ -59,7 +53,8 @@ def remove_mismatched_arguments(database):
for kernel_group_name, kernel_group in db.group_by(database["sections"], kernel_attributes):
group_by_arguments = db.group_by(kernel_group, clblast.ARGUMENT_ATTRIBUTES)
if len(group_by_arguments) != 1:
- print("[database] ERROR: entries for a single kernel with multiple argument values " + str(kernel_group_name))
+ print("[database] ERROR: entries for a single kernel with multiple argument values " +
+ str(kernel_group_name))
assert len(group_by_arguments) == 1
@@ -97,7 +92,8 @@ def main(argv):
# Checks whether the command-line arguments are valid
clblast_header = os.path.join(cl_args.clblast_root, "include", "clblast.h") # Not used but just for validation
if not os.path.isfile(clblast_header):
- raise RuntimeError("The path '" + cl_args.clblast_root + "' does not point to the root of the CLBlast library")
+ raise RuntimeError("The path '" + cl_args.clblast_root +
+ "' does not point to the root of the CLBlast library")
if len(glob.glob(json_files)) < 1:
print("[database] The path '" + cl_args.source_folder + "' does not contain any JSON files")
@@ -115,11 +111,6 @@ def main(argv):
sys.stdout.write("[database] Processing '" + file_json + "' ") # No newline printed
imported_data = io.load_tuning_results(file_json)
- # Fixes the problem that some vendors use multiple different names
- for target in VENDOR_TRANSLATION_TABLE:
- if imported_data["device_vendor"] == target:
- imported_data["device_vendor"] = VENDOR_TRANSLATION_TABLE[target]
-
# Adds the new data to the database
old_size = db.length(database)
database = db.add_section(database, imported_data)
@@ -136,7 +127,7 @@ def main(argv):
# Removes database entries before continuing
if cl_args.remove_device is not None:
print("[database] Removing all results for device '%s'" % cl_args.remove_device)
- remove_database_entries(database, {"device": cl_args.remove_device})
+ remove_database_entries(database, {"clblast_device": cl_args.remove_device})
io.save_database(database, database_filename)
# Retrieves the best performing results
diff --git a/scripts/database/database/clblast.py b/scripts/database/database/clblast.py
index 803d1d2a..428bfdda 100644
--- a/scripts/database/database/clblast.py
+++ b/scripts/database/database/clblast.py
@@ -7,14 +7,21 @@
import os
+# Type settings (also change in database_structure.hpp)
+STRING_LENGTH = 50
+PARAMETERS_LENGTH = 14
+
# Constants from the C++ code
VENDOR_DEFAULT = "default"
DEVICE_TYPE_DEFAULT = "All"
DEVICE_NAME_DEFAULT = "default"
+DEVICE_NAME_DEFAULT_CONSTANT = "kDeviceNameDefault "
+DEVICE_ARCHITECTURE_DEFAULT = "default"
# List of attributes
-DEVICE_TYPE_ATTRIBUTES = ["device_vendor", "device_type"]
-DEVICE_ATTRIBUTES = ["device", "device_core_clock", "device_compute_units"]
+DEVICE_TYPE_ATTRIBUTES = ["clblast_device_vendor", "clblast_device_type"]
+DEVICE_ATTRIBUTES = ["clblast_device_name", "clblast_device_architecture",
+ "device_core_clock", "device_compute_units"]
KERNEL_ATTRIBUTES = ["precision", "kernel_family"]
ARGUMENT_ATTRIBUTES = ["arg_m", "arg_n", "arg_k", "arg_alpha", "arg_beta"]
ATTRIBUTES = DEVICE_ATTRIBUTES + DEVICE_TYPE_ATTRIBUTES + KERNEL_ATTRIBUTES + ARGUMENT_ATTRIBUTES
@@ -42,20 +49,19 @@ def get_cpp_separator():
return "// ================================================================================================="
-def get_cpp_header(family):
+def get_cpp_header(family, precision):
"""Retrieves the C++ header"""
return ("\n" + get_cpp_separator() + """
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
//
-// This file populates the database with best-found tuning parameters for the '%s' kernels.
+// This file populates the database with best-found tuning parameters for the '%s%s' kernels.
//\n"""
- % family.title() + get_cpp_separator() + \
- "\n\nnamespace clblast {\n" + "namespace database {\n" + get_cpp_separator())
+ % (family.title(), precision)) + get_cpp_separator() + "\n"
+
+
+def get_cpp_header_namespace():
+ return "\nnamespace clblast {\n" + "namespace database {\n"
def get_cpp_footer():
@@ -67,7 +73,7 @@ def get_cpp_precision(family, precision):
"""Retrieves the C++ code for the start of a new precision"""
precision_string = precision_to_string(precision)
camelcase_name = family.title().replace("_", "")
- return("\n\nconst Database::DatabaseEntry %s%s = {\n \"%s\", Precision::k%s"
+ return("\nconst DatabaseEntry %s%s = {\n \"%s\", Precision::k%s"
% (camelcase_name, precision_string, camelcase_name, precision_string))
@@ -79,6 +85,19 @@ def get_cpp_device_vendor(vendor, device_type):
return " { // %s %ss\n kDeviceType%s, \"%s\", {\n" % (vendor, device_type, device_type_caps, vendor)
+def get_cpp_family_includes(family, precisions):
+ result = "\n"
+ # result += "#include \"clblast.h\"\n"
+ # result += "#include \"database/database_structure.hpp\"\n"
+ for precision in precisions:
+ result += "#include \"database/kernels/%s/%s_%s.hpp\"\n" % (family, family, precision)
+ return result
+
+
+def print_as_name(name):
+ return "Name{\"%-50s\"}" % name.strip()[:STRING_LENGTH]
+
+
def print_cpp_database(database, output_dir):
"""Outputs the database as C++ code"""
@@ -87,26 +106,30 @@ def print_cpp_database(database, output_dir):
for family_name in kernel_families:
family_database = [s for s in database["sections"] if s["kernel_family"] == family_name]
- # Opens a new file for each kernel family
- full_path = os.path.join(output_dir, family_name + ".hpp")
- with open(full_path, 'w+') as f:
- f.write(get_cpp_header(family_name))
+ # Goes into a new path for each kernel family
+ family_path = os.path.join(output_dir, family_name)
- # Loops over the different precision (e.g. 16, 32, 3232, 64, 6464)
- precisions = sorted(set([s["precision"] for s in database["sections"]])) # Based on full database
- for precision in precisions:
- precision_database = [s for s in family_database if s["precision"] == precision]
+ # Loops over the different precision (e.g. 16, 32, 3232, 64, 6464)
+ precisions = sorted(set([s["precision"] for s in database["sections"]])) # Based on full database
+ for precision in precisions:
+ precision_database = [s for s in family_database if s["precision"] == precision]
+
+ # Opens a new file for each precision
+ full_path = os.path.join(family_path, family_name + "_" + precision + ".hpp")
+ with open(full_path, 'w+') as f:
+ f.write(get_cpp_header(family_name, precision))
+ f.write(get_cpp_header_namespace())
f.write(get_cpp_precision(family_name, precision))
- # In case there is nothing found at all (e.g. 16-bit): continue as if this was a precision of 32 but
- # with the defaults only
+ # In case there is nothing found at all (e.g. 16-bit): continue as if this was a
+ # precision of 32 but with the defaults only
if len(precision_database) == 0:
print("[database] No results found for %s:%s, retrieving defaults from %s:32" %
(family_name, precision, family_name))
precision_database = [s for s in family_database if s["precision"] == "32"
- and s["device_vendor"] == VENDOR_DEFAULT
- and s["device_type"] == DEVICE_TYPE_DEFAULT
- and s["device"] == DEVICE_NAME_DEFAULT]
+ and s["clblast_device_vendor"] == VENDOR_DEFAULT
+ and s["clblast_device_type"] == DEVICE_TYPE_DEFAULT
+ and s["clblast_device_name"] == DEVICE_NAME_DEFAULT]
# Discovers the parameters for this kernel
parameter_names = []
@@ -118,51 +141,72 @@ def print_cpp_database(database, output_dir):
f.write(", {" + parameter_names_as_string + "}, {\n")
# Loops over device vendors (e.g. AMD)
- device_vendors = sorted(set([s["device_vendor"] for s in precision_database]))
+ device_vendors = sorted(set([s["clblast_device_vendor"] for s in precision_database]))
for vendor in device_vendors:
- vendor_database = [s for s in precision_database if s["device_vendor"] == vendor]
+ vendor_database = [s for s in precision_database if s["clblast_device_vendor"] == vendor]
# Loops over device types (e.g. GPU)
- device_types = sorted(set([s["device_type"] for s in vendor_database]))
+ device_types = sorted(set([s["clblast_device_type"] for s in vendor_database]))
for device_type in device_types:
- type_database = [s for s in vendor_database if s["device_type"] == device_type]
+ type_database = [s for s in vendor_database if s["clblast_device_type"] == device_type]
f.write(get_cpp_device_vendor(vendor, device_type))
- # Loops over every device of this vendor-type combination
- devices = sorted(set([s["device"] for s in type_database]))
- for device_name in devices:
- device_database = [s for s in type_database if s["device"] == device_name]
- device_name_quoted = "\"%s\"," % device_name.strip()
- device_name_cpp = " { %-50s { " % device_name_quoted
- f.write(device_name_cpp)
-
- # Collects the parameters for this entry
- parameters = []
- parmameter_index = 0
- kernels = sorted(set([s["kernel"] for s in device_database]))
- for kernel in kernels:
- kernel_database = [s for s in device_database if s["kernel"] == kernel]
-
- assert len(kernel_database) == 1
- results = kernel_database[0]["results"]
-
- assert len(results) == 1
- new_parameters = results[0]["parameters"]
- for parameter_name in sorted(new_parameters):
- assert parameter_name == parameter_names[parmameter_index]
- parameter_value = new_parameters[parameter_name]
- parameters.append(str(parameter_value))
- parmameter_index += 1
-
- # Prints the entry
- f.write(", ".join(parameters))
- f.write(" } },\n")
+ # Loops over every architecture of this vendor-type combination
+ architectures = sorted(set([s["clblast_device_architecture"] for s in type_database]))
+ for architecture in architectures:
+ architecture_database = [s for s in type_database if s["clblast_device_architecture"] == architecture]
+ architecture_string = DEVICE_ARCHITECTURE_DEFAULT if architecture == "" else architecture
+ f.write(" { \"%s\", {\n" % architecture_string)
+
+ # Loops over every device of this vendor-type combination
+ devices = sorted(set([s["clblast_device_name"] for s in architecture_database]))
+ for device_name in devices:
+ device_database = [s for s in architecture_database if s["clblast_device_name"] == device_name]
+ device_name_as_string = print_as_name(device_name) if device_name != DEVICE_NAME_DEFAULT else DEVICE_NAME_DEFAULT_CONSTANT
+ device_name_cpp = " { %s, Params{ " % device_name_as_string
+ f.write(device_name_cpp)
+
+ # Collects the parameters for this entry
+ parameters = []
+ parameter_index = 0
+ kernels = sorted(set([s["kernel"] for s in device_database]))
+ for kernel in kernels:
+ kernel_database = [s for s in device_database if s["kernel"] == kernel]
+
+ assert len(kernel_database) == 1
+ results = kernel_database[0]["results"]
+
+ assert len(results) == 1
+ new_parameters = results[0]["parameters"]
+ for parameter_name in sorted(new_parameters):
+ assert parameter_name == parameter_names[parameter_index]
+ parameter_value = new_parameters[parameter_name]
+ parameters.append(str(parameter_value))
+ parameter_index += 1
+
+ # Appends zero's to complete the list
+ assert parameter_index <= PARAMETERS_LENGTH
+ for append_index in range(parameter_index, PARAMETERS_LENGTH):
+ parameters.append("0")
+
+ # Prints the entry
+ f.write(", ".join(parameters))
+ f.write(" } },\n")
+
+ # Prints the architecture footer
+ f.write(" } },\n")
# Prints the vendor-type combination footer
f.write(" }\n },\n")
# Prints the precision footer
- f.write(" }\n};\n\n" + get_cpp_separator())
+ f.write(" }\n};\n")
+
+ # Prints the file footer
+ f.write(get_cpp_footer())
- # Prints the file footer
- f.write(get_cpp_footer())
+ # Creates the combined family includes header
+ full_path = os.path.join(family_path, family_name + ".hpp")
+ with open(full_path, 'w+') as f:
+ f.write(get_cpp_header(family_name, ""))
+ f.write(get_cpp_family_includes(family_name, precisions))
diff --git a/scripts/database/database/defaults.py b/scripts/database/database/defaults.py
index 444c66df..6042c374 100644
--- a/scripts/database/database/defaults.py
+++ b/scripts/database/database/defaults.py
@@ -12,14 +12,6 @@ import clblast
import bests
-def set_default_device(section):
- """Sets the device name and parameters to some default values"""
- section["device"] = clblast.DEVICE_NAME_DEFAULT
- section["device_compute_units"] = 0
- section["device_core_clock"] = 0
- return section
-
-
def set_identifiers(database, group_by_attributes, identifier_name):
"""Sets a group-identifier based on a given set of attributes. Modifies the database but also returns a list of
unique identifiers."""
@@ -55,32 +47,56 @@ def get_groups_by_identifier(database, group_identifiers, identifier_name):
return groups
-def calculate_defaults(database, verbose):
- """Sets defaults for devices of the same type/vendor"""
+def add_default_sections(database, grouping, verbose, values_dict, condition, enable_warning):
+ default_sections = []
- # Groups the database by kernel, vendor and device type (e.g. AMD GPU)
- group_identifiers = set_identifiers(database, clblast.GROUP_ATTRIBUTES, "group_identifier")
+ # Groups the database by a certain grouping
+ group_identifiers = set_identifiers(database, grouping, "group_identifier")
groups = get_groups_by_identifier(database, group_identifiers, "group_identifier")
# Loops over all groups
- default_sections = {"sections": []}
for group, group_identifier in groups:
# Computes the best parameters
- default_parameters = get_common_best_parameters(group, group_identifier, verbose)
+ default_parameters = get_common_best_parameters(group, group_identifier, verbose, enable_warning)
+ assert len(group) > 0
+ if condition(group[0]):
# Stores all the section's data
- assert len(group) > 0
- default_section = {}
- for attribute in group[0].keys():
- if attribute != "results" and attribute != "group_identifier":
- default_section[attribute] = group[0][attribute]
- default_section = set_default_device(default_section)
- default_section["results"] = [{"time": 0.0, "parameters": default_parameters}]
- default_sections["sections"].append(default_section)
+ default_section = {}
+ for attribute in group[0].keys():
+ if attribute != "results" and attribute != "group_identifier":
+ default_section[attribute] = group[0][attribute]
+ default_section["clblast_device_compute_units"] = 0
+ default_section["clblast_device_core_clock"] = 0
+ for key in values_dict.keys():
+ default_section[key] = values_dict[key]
+ default_section["results"] = [{"time": 0.0, "parameters": default_parameters}]
+ default_sections.append(default_section)
+ return default_sections
- # Groups the database by kernel, vendor and device type (e.g. AMD GPU) - but not by arguments! This is to check for
- # mis-matched arguments.
+
+def calculate_defaults(database, verbose):
+ """Sets defaults for devices of the same type/vendor"""
+ default_sections = {"sections": []}
+
+ # Groups the database by kernel, vendor and device architecture (e.g. AMD GPU "Fiji")
+ architecture_group = clblast.GROUP_ATTRIBUTES + ["clblast_device_architecture"]
+ architecture_defaults = add_default_sections(database, architecture_group, verbose,
+ {"clblast_device_name": clblast.DEVICE_NAME_DEFAULT},
+ lambda entry: True, enable_warning=False)
+
+ # Groups the database by kernel, vendor and device type (e.g. AMD GPU)
+ device_defaults = add_default_sections(database, clblast.GROUP_ATTRIBUTES, verbose,
+ {"clblast_device_name": clblast.DEVICE_NAME_DEFAULT,
+ "clblast_device_architecture": clblast.DEVICE_ARCHITECTURE_DEFAULT},
+ lambda entry: entry["clblast_device_architecture"] != "",
+ enable_warning=True)
+ default_sections["sections"].extend(device_defaults)
+
+ # Groups the database by kernel, vendor and device type (e.g. AMD GPU) - but not by arguments!
+ # This is to check for mis-matched arguments in the database. Note: this is not a check on the
+ # architecture defaults
attributes = clblast.DEVICE_TYPE_ATTRIBUTES + clblast.KERNEL_ATTRIBUTES + ["kernel"]
group_identifiers = set_identifiers(default_sections, attributes, "temp_identifier")
groups = get_groups_by_identifier(default_sections, group_identifiers, "temp_identifier")
@@ -90,6 +106,9 @@ def calculate_defaults(database, verbose):
assert len(group) == 1
remove_identifiers(default_sections, "temp_identifier")
+ # Adds the architecture defaults only after running the above check
+ default_sections["sections"].extend(architecture_defaults)
+
# Groups the database by kernel only
group_identifiers = set_identifiers(database, clblast.KERNEL_ATTRIBUTES + ["kernel"], "group_identifier")
groups = get_groups_by_identifier(database, group_identifiers, "group_identifier")
@@ -98,7 +117,8 @@ def calculate_defaults(database, verbose):
for group, group_identifier in groups:
# Computes the best parameters
- default_parameters = get_common_best_parameters(group, group_identifier, verbose)
+ default_parameters = get_common_best_parameters(group, group_identifier, verbose,
+ enable_warning=True)
# Stores all the section's data
assert len(group) > 0
@@ -106,9 +126,12 @@ def calculate_defaults(database, verbose):
for attribute in group[0].keys():
if attribute != "results" and attribute != "group_identifier":
default_section[attribute] = group[0][attribute]
- default_section = set_default_device(default_section)
- default_section["device_vendor"] = clblast.VENDOR_DEFAULT
- default_section["device_type"] = clblast.DEVICE_TYPE_DEFAULT
+ default_section["clblast_device_name"] = clblast.DEVICE_NAME_DEFAULT
+ default_section["clblast_device_architecture"] = clblast.DEVICE_ARCHITECTURE_DEFAULT
+ default_section["clblast_device_vendor"] = clblast.VENDOR_DEFAULT
+ default_section["clblast_device_type"] = clblast.DEVICE_TYPE_DEFAULT
+ default_section["clblast_device_compute_units"] = 0
+ default_section["clblast_device_core_clock"] = 0
default_section["results"] = [{"time": 0.0, "parameters": default_parameters}]
default_sections["sections"].append(default_section)
@@ -143,7 +166,7 @@ def get_parameter_names(section):
return [result["parameters"] for result in section["results"]]
-def get_common_best_parameters(group, group_identifier, verbose):
+def get_common_best_parameters(group, group_identifier, verbose, enable_warning):
"""Sets defaults based on the best values of entries supported by all devices. This might cause a problem in case
not every device was tuned with the same parameters. In that case it falls back to the above method to retrieve
the smallest best execution time"""
@@ -179,7 +202,8 @@ def get_common_best_parameters(group, group_identifier, verbose):
# Fall back method in case there are no shared entries at all across devices
if num_devices_common == 1:
- print("[database] Warning: No common kernels for: " + str(group_identifier) + " at all")
+ if enable_warning:
+ print("[database] Warning: No common kernels for: " + str(group_identifier) + " at all")
smallest_best_parameters = get_smallest_best_parameters(group)
if verbose:
print("[database] " + str(group_identifier))
diff --git a/scripts/database/database/io.py b/scripts/database/database/io.py
index 58f9103b..722658d8 100644
--- a/scripts/database/database/io.py
+++ b/scripts/database/database/io.py
@@ -26,14 +26,53 @@ def load_database(filename):
"""Loads a database from disk"""
print("[database] Loading database from '" + filename + "'")
with open(filename) as f:
- return json.load(f)
+ database = json.load(f)
+ return decompress_database(database)
def save_database(database, filename):
"""Saves a database to disk"""
+ compressed_db = compress_database(database)
print("[database] Saving database to '" + filename + "'")
with open(filename, "w") as f:
- json.dump(database, f, sort_keys=True, indent=4)
+ json.dump(compressed_db, f, sort_keys=True, indent=2, separators=(',', ': '))
+
+
+def compress_database(database):
+ """Moves certain common fields up in the hierarchy, transforms dicts into lists"""
+ new_sections = []
+ for section in database["sections"]:
+ new_section = {}
+ for field in section:
+ if field == "results":
+ parameter_names = [result["parameters"].keys() for result in section["results"]]
+ assert len(list(set([" ".join(p) for p in parameter_names]))) == 1
+ new_section["parameter_names"] = parameter_names[0] # they are all be the same
+ new_results = [[",".join([str(v) for v in result["parameters"].values()]),
+ result["time"]]
+ for result in section["results"]]
+ new_section[field] = new_results
+ else:
+ new_section[field] = section[field]
+ new_sections.append(new_section)
+ return {"sections": new_sections}
+
+
+def decompress_database(database):
+ """Undo the above compression"""
+ for section in database["sections"]:
+ new_results = []
+ for result in section["results"]:
+ parameters = {}
+ for name, value in zip(section["parameter_names"], result[0].split(",")):
+ parameters[name] = value
+ new_result = {
+ "parameters": parameters,
+ "time": result[1]
+ }
+ new_results.append(new_result)
+ section["results"] = new_results
+ return database
def load_tuning_results(filename):
diff --git a/src/clblast.cpp b/src/clblast.cpp
index 9089b17c..d44649bb 100644
--- a/src/clblast.cpp
+++ b/src/clblast.cpp
@@ -2512,18 +2512,21 @@ StatusCode OverrideParameters(const cl_device_id device, const std::string &kern
}
// Retrieves the names and values separately
- auto parameter_values = std::vector<size_t>();
+ auto parameter_values = database::Params{0};
auto parameter_names = std::vector<std::string>();
+ auto i = size_t{0};
for (const auto &parameter : parameters) {
- parameter_values.push_back(parameter.second);
+ parameter_values[i] = parameter.second;
parameter_names.push_back(parameter.first);
+ ++i;
}
// Creates a small custom database based on the provided parameters
- const auto database_device = Database::DatabaseDevice{"default", parameter_values};
- const auto database_vendor = Database::DatabaseVendor{database::kDeviceTypeAll, "default", {database_device}};
- const auto database_entry = Database::DatabaseEntry{kernel_name, precision, parameter_names, {database_vendor}};
- const auto database_entries = std::vector<Database::DatabaseEntry>{database_entry};
+ const auto database_device = database::DatabaseDevice{database::kDeviceNameDefault, parameter_values};
+ const auto database_architecture = database::DatabaseArchitecture{"default", {database_device}};
+ const auto database_vendor = database::DatabaseVendor{database::kDeviceTypeAll, "default", {database_architecture}};
+ const auto database_entry = database::DatabaseEntry{kernel_name, precision, parameter_names, {database_vendor}};
+ const auto database_entries = std::vector<database::DatabaseEntry>{database_entry};
const auto database = Database(device_cpp, kernel_name, precision, database_entries);
// Removes the old database entry and stores the new one in the cache
diff --git a/src/clpp11.hpp b/src/clpp11.hpp
index e0b8cbe9..7c1457b0 100644
--- a/src/clpp11.hpp
+++ b/src/clpp11.hpp
@@ -167,6 +167,7 @@ class Platform {
// Methods to retrieve platform information
std::string Name() const { return GetInfoString(CL_PLATFORM_NAME); }
std::string Vendor() const { return GetInfoString(CL_PLATFORM_VENDOR); }
+ std::string Version() const { return GetInfoString(CL_PLATFORM_VERSION); }
// Returns the number of devices on this platform
size_t NumDevices() const {
@@ -261,6 +262,11 @@ class Device {
return static_cast<unsigned long>(GetInfo<cl_ulong>(CL_DEVICE_LOCAL_MEM_SIZE));
}
std::string Capabilities() const { return GetInfoString(CL_DEVICE_EXTENSIONS); }
+ bool HasExtension(const std::string &extension) const {
+ const auto extensions = Capabilities();
+ return extensions.find(extension) != std::string::npos;
+ }
+
size_t CoreClock() const {
return static_cast<size_t>(GetInfo<cl_uint>(CL_DEVICE_MAX_CLOCK_FREQUENCY));
}
@@ -294,13 +300,36 @@ class Device {
// Query for a specific type of device or brand
bool IsCPU() const { return Type() == "CPU"; }
bool IsGPU() const { return Type() == "GPU"; }
- bool IsAMD() const { return Vendor() == "AMD" || Vendor() == "Advanced Micro Devices, Inc." ||
- Vendor() == "AuthenticAMD";; }
- bool IsNVIDIA() const { return Vendor() == "NVIDIA" || Vendor() == "NVIDIA Corporation"; }
- bool IsIntel() const { return Vendor() == "INTEL" || Vendor() == "Intel" ||
- Vendor() == "GenuineIntel"; }
+ bool IsAMD() const { return Vendor() == "AMD" ||
+ Vendor() == "Advanced Micro Devices, Inc." ||
+ Vendor() == "AuthenticAMD"; }
+ bool IsNVIDIA() const { return Vendor() == "NVIDIA" ||
+ Vendor() == "NVIDIA Corporation"; }
+ bool IsIntel() const { return Vendor() == "INTEL" ||
+ Vendor() == "Intel" ||
+ Vendor() == "GenuineIntel" ||
+ Vendor() == "Intel(R) Corporation"; }
bool IsARM() const { return Vendor() == "ARM"; }
+ // Platform specific extensions
+ std::string AMDBoardName() const { // check for 'cl_amd_device_attribute_query' first
+ #ifndef CL_DEVICE_BOARD_NAME_AMD
+ #define CL_DEVICE_BOARD_NAME_AMD 0x4038
+ #endif
+ return GetInfoString(CL_DEVICE_BOARD_NAME_AMD);
+ }
+ std::string NVIDIAComputeCapability() const { // check for 'cl_nv_device_attribute_query' first
+ #ifndef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV
+ #define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000
+ #endif
+ #ifndef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV
+ #define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001
+ #endif
+ return std::string{"SM"} + std::to_string(GetInfo<cl_uint>(CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV)) +
+ std::string{"."} + std::to_string(GetInfo<cl_uint>(CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV));
+ }
+
+
// Accessor to the private data-member
const cl_device_id& operator()() const { return device_; }
private:
diff --git a/src/database/apple_cpu_fallback.hpp b/src/database/apple_cpu_fallback.hpp
index ae42749d..e1aa4661 100644
--- a/src/database/apple_cpu_fallback.hpp
+++ b/src/database/apple_cpu_fallback.hpp
@@ -22,47 +22,47 @@ namespace clblast {
namespace database {
// =================================================================================================
-const Database::DatabaseEntry XaxpyApple = {
- "Xaxpy", Precision::kAny, {"VW", "WGS", "WPT"}, { { kDeviceTypeAll, "default", { { "default", { 8, 1, 4 } } } } }
+const DatabaseEntry XaxpyApple = {
+ "Xaxpy", Precision::kAny, {"VW", "WGS", "WPT"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XdotApple = {
- "Xdot", Precision::kAny, {"WGS1", "WGS2"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1 } } } } }
+const DatabaseEntry XdotApple = {
+ "Xdot", Precision::kAny, {"WGS1", "WGS2"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XgemvApple = {
- "Xgemv", Precision::kAny, {"WGS1", "WPT1", "UNROLL1"}, { { kDeviceTypeAll, "default", { { "default", { 1, 4, 1 } } } } }
+const DatabaseEntry XgemvApple = {
+ "Xgemv", Precision::kAny, {"WGS1", "WPT1", "UNROLL1"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XgemvFastApple = {
- "XgemvFast", Precision::kAny, {"VW2", "WGS2", "WPT2"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1 } } } } }
+const DatabaseEntry XgemvFastApple = {
+ "XgemvFast", Precision::kAny, {"VW2", "WGS2", "WPT2"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XgemvFastRotApple = {
- "XgemvFastRot", Precision::kAny, {"VW3", "WGS3", "WPT3"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1 } } } } }
+const DatabaseEntry XgemvFastRotApple = {
+ "XgemvFastRot", Precision::kAny, {"VW3", "WGS3", "WPT3"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XgerApple = {
- "Xger", Precision::kAny, {"WGS1", "WGS2", "WPT"}, { { kDeviceTypeAll, "default", { { "default", { 64, 1, 2 } } } } }
+const DatabaseEntry XgerApple = {
+ "Xger", Precision::kAny, {"WGS1", "WGS2", "WPT"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XtrsvApple = {
- "Xtrsv", Precision::kAny, {"TRSV_BLOCK_SIZE"}, { { kDeviceTypeAll, "default", { { "default", { 32 } } } } }
+const DatabaseEntry XtrsvApple = {
+ "Xtrsv", Precision::kAny, {"TRSV_BLOCK_SIZE"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry XgemmApple = {
- "Xgemm", Precision::kAny, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1 } } } } }
+const DatabaseEntry XgemmApple = {
+ "Xgemm", Precision::kAny, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1 } } } } } } }
};
-const Database::DatabaseEntry XgemmDirectApple = {
- "XgemmDirect", Precision::kAny, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 } } } } }
+const DatabaseEntry XgemmDirectApple = {
+ "XgemmDirect", Precision::kAny, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry CopyApple = {
- "Copy", Precision::kAny, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1, 1 } } } } }
+const DatabaseEntry CopyApple = {
+ "Copy", Precision::kAny, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry PadApple = {
- "Pad", Precision::kAny, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, { { kDeviceTypeAll, "default", { { "default", { 1, 1, 1, 1 } } } } }
+const DatabaseEntry PadApple = {
+ "Pad", Precision::kAny, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry TransposeApple = {
- "Transpose", Precision::kAny, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, { { kDeviceTypeAll, "default", { { "default", { 1, 0, 0, 1 } } } } }
+const DatabaseEntry TransposeApple = {
+ "Transpose", Precision::kAny, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry PadtransposeApple = {
- "Padtranspose", Precision::kAny, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, { { kDeviceTypeAll, "default", { { "default", { 0, 1, 1 } } } } }
+const DatabaseEntry PadtransposeApple = {
+ "Padtranspose", Precision::kAny, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
-const Database::DatabaseEntry InvertApple = {
- "Invert", Precision::kAny, {"INTERNAL_BLOCK_SIZE"}, { { kDeviceTypeAll, "default", { { "default", { 16 } } } } }
+const DatabaseEntry InvertApple = {
+ "Invert", Precision::kAny, {"INTERNAL_BLOCK_SIZE"}, { { kDeviceTypeAll, "default", { { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } } } } }
};
// =================================================================================================
diff --git a/src/database/database.cpp b/src/database/database.cpp
index 79c2ea03..4187ffe3 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -16,19 +16,21 @@
#include "utilities/utilities.hpp"
#include "database/database.hpp"
-#include "database/kernels/xaxpy.hpp"
-#include "database/kernels/xdot.hpp"
-#include "database/kernels/xgemv.hpp"
-#include "database/kernels/xgemv_fast.hpp"
-#include "database/kernels/xgemv_fast_rot.hpp"
-#include "database/kernels/xger.hpp"
+
+#include "database/kernels/xaxpy/xaxpy.hpp"
+#include "database/kernels/xdot/xdot.hpp"
+#include "database/kernels/xgemv/xgemv.hpp"
+#include "database/kernels/xgemv_fast/xgemv_fast.hpp"
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot.hpp"
+#include "database/kernels/xger/xger.hpp"
+#include "database/kernels/xgemm/xgemm.hpp"
+#include "database/kernels/xgemm_direct/xgemm_direct.hpp"
+#include "database/kernels/copy/copy.hpp"
+#include "database/kernels/pad/pad.hpp"
+#include "database/kernels/transpose/transpose.hpp"
+#include "database/kernels/padtranspose/padtranspose.hpp"
+
#include "database/kernels/xtrsv.hpp"
-#include "database/kernels/xgemm.hpp"
-#include "database/kernels/xgemm_direct.hpp"
-#include "database/kernels/copy.hpp"
-#include "database/kernels/pad.hpp"
-#include "database/kernels/transpose.hpp"
-#include "database/kernels/padtranspose.hpp"
#include "database/kernels/invert.hpp"
#include "database/apple_cpu_fallback.hpp"
#include "database/kernel_selection.hpp"
@@ -37,7 +39,7 @@ namespace clblast {
// =================================================================================================
// Initializes the databases
-const std::vector<Database::DatabaseEntry> Database::database = std::vector<Database::DatabaseEntry>{
+const std::vector<database::DatabaseEntry> Database::database = std::vector<database::DatabaseEntry>{
database::XaxpyHalf, database::XaxpySingle, database::XaxpyDouble, database::XaxpyComplexSingle, database::XaxpyComplexDouble,
database::XdotHalf, database::XdotSingle, database::XdotDouble, database::XdotComplexSingle, database::XdotComplexDouble,
database::XgemvHalf, database::XgemvSingle, database::XgemvDouble, database::XgemvComplexSingle, database::XgemvComplexDouble,
@@ -54,7 +56,7 @@ const std::vector<Database::DatabaseEntry> Database::database = std::vector<Data
database::InvertHalf, database::InvertSingle, database::InvertDouble, database::InvertComplexSingle, database::InvertComplexDouble,
database::KernelSelectionHalf, database::KernelSelectionSingle, database::KernelSelectionDouble, database::KernelSelectionComplexSingle, database::KernelSelectionComplexDouble
};
-const std::vector<Database::DatabaseEntry> Database::apple_cpu_fallback = std::vector<Database::DatabaseEntry>{
+const std::vector<database::DatabaseEntry> Database::apple_cpu_fallback = std::vector<database::DatabaseEntry>{
database::XaxpyApple, database::XdotApple,
database::XgemvApple, database::XgemvFastApple, database::XgemvFastRotApple, database::XgerApple, database::XtrsvApple,
database::XgemmApple, database::XgemmDirectApple,
@@ -65,41 +67,31 @@ const std::vector<Database::DatabaseEntry> Database::apple_cpu_fallback = std::v
// The default values
const std::string Database::kDeviceVendorAll = "default";
-// Alternative names for some OpenCL vendors
-const std::unordered_map<std::string, std::string> Database::kVendorNames{
- { "Intel(R) Corporation", "Intel" },
- { "GenuineIntel", "Intel" },
- { "Advanced Micro Devices, Inc.", "AMD" },
- { "NVIDIA Corporation", "NVIDIA" },
-};
-
// =================================================================================================
// Constructor, computing device properties and populating the parameter-vector from the database.
// This takes an optional overlay database in case of custom tuning or custom kernels.
Database::Database(const Device &device, const std::string &kernel_name,
- const Precision precision, const std::vector<DatabaseEntry> &overlay):
- parameters_(std::make_shared<Parameters>()) {
-
- // Finds information of the current device
- auto device_type = device.Type();
- auto device_vendor = device.Vendor();
- auto device_name = device.Name();
-
- // Set the short vendor name
- for (auto &combination : kVendorNames) {
- if (device_vendor == combination.first) {
- device_vendor = combination.second;
- }
- }
+ const Precision precision, const std::vector<database::DatabaseEntry> &overlay):
+ parameters_(std::make_shared<database::Parameters>()) {
+
+ // Finds device information
+ const auto device_type = GetDeviceType(device);
+ const auto device_vendor = GetDeviceVendor(device);
+ const auto device_architecture = GetDeviceArchitecture(device);
+ const auto device_name = GetDeviceName(device);
+
+ // Prints the obtained information in verbose mode
+ log_debug("Device type '" + device_type + "'; vendor '" + device_vendor + "'");
+ log_debug("Device name '" + device_name + "'; architecture '" + device_architecture + "'");
// Sets the databases to search through
- auto databases = std::list<std::vector<DatabaseEntry>>{overlay, database};
+ auto databases = std::list<std::vector<database::DatabaseEntry>>{overlay, database};
// Special case: modifies the database if the device is a CPU with Apple OpenCL
#if defined(__APPLE__) || defined(__MACOSX)
if (device.Type() == "CPU") {
- auto extensions = device.Capabilities();
+ const auto extensions = device.Capabilities();
const auto is_apple = (extensions.find("cl_APPLE_SetMemObjectDestructor") == std::string::npos) ? false : true;
if (is_apple) {
databases.push_front(apple_cpu_fallback);
@@ -108,9 +100,10 @@ Database::Database(const Device &device, const std::string &kernel_name,
#endif
// Searches potentially multiple databases
- auto search_result = Parameters();
+ auto search_result = database::Parameters();
for (auto &db: databases) {
- search_result = Search(kernel_name, device_type, device_vendor, device_name, precision, db);
+ search_result = Search(kernel_name, device_vendor, device_type,
+ device_name, device_architecture, precision, db);
if (search_result.size() != 0) {
parameters_->insert(search_result.begin(), search_result.end());
break;
@@ -143,12 +136,11 @@ std::vector<std::string> Database::GetParameterNames() const {
// =================================================================================================
// Searches a particular database for the right kernel and precision
-Database::Parameters Database::Search(const std::string &this_kernel,
- const std::string &this_type,
- const std::string &this_vendor,
- const std::string &this_device,
+database::Parameters Database::Search(const std::string &this_kernel,
+ const std::string &this_vendor, const std::string &this_type,
+ const std::string &this_device, const std::string &this_architecture,
const Precision this_precision,
- const std::vector<DatabaseEntry> &this_database) const {
+ const std::vector<database::DatabaseEntry> &this_database) const {
// Selects the right kernel
for (auto &db: this_database) {
@@ -156,51 +148,77 @@ Database::Parameters Database::Search(const std::string &this_kernel,
(db.precision == this_precision || db.precision == Precision::kAny)) {
// Searches for the right vendor and device type, or selects the default if unavailable
- const auto parameters = SearchVendorAndType(this_vendor, this_type, this_device,
+ const auto parameters = SearchVendorAndType(this_vendor, this_type, this_device, this_architecture,
db.vendors, db.parameter_names);
if (parameters.size() != 0) { return parameters; }
- return SearchVendorAndType(kDeviceVendorAll, database::kDeviceTypeAll, this_device,
+ return SearchVendorAndType(kDeviceVendorAll, database::kDeviceTypeAll, this_device, this_architecture,
db.vendors, db.parameter_names);
}
}
// If we reached this point, the entry was not found in this database
- return Parameters();
+ return database::Parameters();
}
-Database::Parameters Database::SearchVendorAndType(const std::string &target_vendor,
- const std::string &target_type,
- const std::string &this_device,
- const std::vector<DatabaseVendor> &vendors,
+database::Parameters Database::SearchVendorAndType(const std::string &target_vendor, const std::string &target_type,
+ const std::string &this_device, const std::string &this_architecture,
+ const std::vector<database::DatabaseVendor> &vendors,
const std::vector<std::string> &parameter_names) const {
for (auto &vendor: vendors) {
if ((vendor.name == target_vendor) && (vendor.type == target_type)) {
+ log_debug("Found architectures of vendor '" + target_vendor + "' and type '" + target_type + "'");
- // Searches the device; if unavailable, returns the vendor's default parameters
- const auto parameters = SearchDevice(this_device, vendor.devices, parameter_names);
+ // Searches the architecture; if unavailable returns the vendor's default parameters
+ auto parameters = SearchArchitecture(this_architecture, this_device, vendor.architectures, parameter_names);
if (parameters.size() != 0) { return parameters; }
- return SearchDevice("default", vendor.devices, parameter_names);
+ return SearchArchitecture("default", this_device, vendor.architectures, parameter_names);
}
}
- return Parameters();
+ return database::Parameters();
}
-Database::Parameters Database::SearchDevice(const std::string &target_device,
- const std::vector<DatabaseDevice> &devices,
+database::Parameters Database::SearchArchitecture(const std::string &target_architecture,
+ const std::string &this_device,
+ const std::vector<database::DatabaseArchitecture> &architectures,
+ const std::vector<std::string> &parameter_names) const {
+ for (auto &architecture: architectures) {
+ if (architecture.name == target_architecture) {
+ log_debug("Found devices of architecture type '" + target_architecture + "'");
+
+ // Searches the device; if unavailable returns the architecture's default parameters
+ auto parameters = SearchDevice(this_device, architecture.devices, parameter_names);
+ if (parameters.size() != 0) { return parameters; }
+ return SearchDevice("default", architecture.devices, parameter_names);
+ }
+ }
+ return database::Parameters();
+}
+
+database::Parameters Database::SearchDevice(const std::string &target_device,
+ const std::vector<database::DatabaseDevice> &devices,
const std::vector<std::string> &parameter_names) const {
for (auto &device: devices) {
- if (device.name == target_device) {
+ const auto device_name = CharArrayToString(device.name);
+ if (device_name == target_device) {
+ log_debug("Found parameters for device type '" + target_device + "'");
// Sets the parameters accordingly
- auto parameters = Parameters();
- if (parameter_names.size() != device.parameters.size()) { return Parameters(); } // ERROR
+ auto parameters = database::Parameters();
+ if (parameter_names.size() > device.parameters.size()) { return database::Parameters(); } // ERROR
for (auto i = size_t{0}; i < parameter_names.size(); ++i) {
- parameters[parameter_names[i]] = device.parameters[i];
+ parameters[parameter_names[i]] = static_cast<size_t>(device.parameters[i]);
}
return parameters;
}
}
- return Parameters();
+ return database::Parameters();
+}
+
+// Helper to convert from database format to proper types
+std::string Database::CharArrayToString(const database::Name char_array) const {
+ auto result = std::string(char_array.data());
+ result.erase(result.find_last_not_of(" \t\n\r\f\v") + 1);
+ return result;
}
// =================================================================================================
diff --git a/src/database/database.hpp b/src/database/database.hpp
index b652164c..4cb0bf6a 100644
--- a/src/database/database.hpp
+++ b/src/database/database.hpp
@@ -22,64 +22,29 @@
#include <unordered_map>
#include "utilities/utilities.hpp"
+#include "database/database_structure.hpp"
namespace clblast {
// =================================================================================================
-// A special namespace to hold all the global constant variables (including the database entries)
-namespace database {
-
- // The OpenCL device types
- const std::string kDeviceTypeCPU = "CPU";
- const std::string kDeviceTypeGPU = "GPU";
- const std::string kDeviceTypeAccelerator = "accelerator";
- const std::string kDeviceTypeAll = "default";
-
-} // namespace database
-
-// =================================================================================================
-
// See comment at top of file for a description of the class
class Database {
public:
- // Type alias for the database parameters
- using Parameters = std::unordered_map<std::string, size_t>;
-
- // Structures for content inside the database
- struct DatabaseDevice {
- std::string name;
- std::vector<size_t> parameters; // parameter values
- };
- struct DatabaseVendor {
- std::string type;
- std::string name;
- std::vector<DatabaseDevice> devices;
- };
- struct DatabaseEntry {
- std::string kernel;
- Precision precision;
- std::vector<std::string> parameter_names;
- std::vector<DatabaseVendor> vendors;
- };
-
// The OpenCL device vendors
static const std::string kDeviceVendorAll;
- // Alternative names for some OpenCL vendors
- static const std::unordered_map<std::string, std::string> kVendorNames;
-
// The database consists of separate database entries, stored together in a vector
- static const std::vector<DatabaseEntry> database;
+ static const std::vector<database::DatabaseEntry> database;
// Database for a special case: Apple CPUs support limited number of threads
- static const std::vector<DatabaseEntry> apple_cpu_fallback;
+ static const std::vector<database::DatabaseEntry> apple_cpu_fallback;
Database() = default;
// The constructor with a user-provided database overlay (potentially an empty vector)
explicit Database(const Device &device, const std::string &kernel_name,
- const Precision precision, const std::vector<DatabaseEntry> &overlay);
+ const Precision precision, const std::vector<database::DatabaseEntry> &overlay);
// Accessor of values by key
size_t operator[](const std::string &key) const { return parameters_->find(key)->second; }
@@ -93,21 +58,29 @@ class Database {
private:
// Search method functions, returning a set of parameters (possibly empty)
- Parameters Search(const std::string &this_kernel, const std::string &this_type,
- const std::string &this_vendor, const std::string &this_device,
- const Precision this_precision,
- const std::vector<DatabaseEntry> &db) const;
- Parameters SearchDevice(const std::string &target_device,
- const std::vector<DatabaseDevice> &devices,
- const std::vector<std::string> &parameter_names) const;
- Parameters SearchVendorAndType(const std::string &target_vendor,
- const std::string &target_type,
- const std::string &this_device,
- const std::vector<DatabaseVendor> &vendors,
- const std::vector<std::string> &parameter_names) const;
+ database::Parameters Search(const std::string &this_kernel,
+ const std::string &this_vendor, const std::string &this_type,
+ const std::string &this_device, const std::string &this_architecture,
+ const Precision this_precision,
+ const std::vector<database::DatabaseEntry> &db) const;
+ database::Parameters SearchDevice(const std::string &target_device,
+ const std::vector<database::DatabaseDevice> &devices,
+ const std::vector<std::string> &parameter_names) const;
+ database::Parameters SearchArchitecture(const std::string &target_architecture,
+ const std::string &this_device,
+ const std::vector<database::DatabaseArchitecture> &architectures,
+ const std::vector<std::string> &parameter_names) const;
+ database::Parameters SearchVendorAndType(const std::string &target_vendor,
+ const std::string &target_type,
+ const std::string &this_device, const std::string &this_architecture,
+ const std::vector<database::DatabaseVendor> &vendors,
+ const std::vector<std::string> &parameter_names) const;
+
+ // Helper to convert from database format to proper types
+ std::string CharArrayToString(const database::Name char_array) const;
// Found parameters suitable for this device/kernel
- std::shared_ptr<Parameters> parameters_;
+ std::shared_ptr<database::Parameters> parameters_;
};
// =================================================================================================
diff --git a/src/database/database_structure.hpp b/src/database/database_structure.hpp
new file mode 100644
index 00000000..d592d7ac
--- /dev/null
+++ b/src/database/database_structure.hpp
@@ -0,0 +1,67 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
+// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
+// width of 100 characters per line.
+//
+// Author(s):
+// Cedric Nugteren <www.cedricnugteren.nl>
+//
+// This file describes the database storage structures.
+//
+// =================================================================================================
+
+#ifndef CLBLAST_DATABASE_DATABASE_STRUCTURE_H_
+#define CLBLAST_DATABASE_DATABASE_STRUCTURE_H_
+
+#include <string>
+#include <array>
+#include <vector>
+#include <unordered_map>
+
+namespace clblast {
+// A special namespace to hold all the global constant variables (including the database entries)
+namespace database {
+
+// =================================================================================================
+
+// Type alias for the database storage (arrays for fast compilation/efficiency)
+using Name = std::array<char, 51>; // name as stored in database (50 chars + string terminator)
+using Params = std::array<size_t, 14>; // parameters as stored in database
+
+// Type alias after extracting from the database (map for improved code readability)
+using Parameters = std::unordered_map<std::string, size_t>; // parameters after reading from DB
+
+// The OpenCL device types
+const std::string kDeviceTypeCPU = "CPU";
+const std::string kDeviceTypeGPU = "GPU";
+const std::string kDeviceTypeAccelerator = "accelerator";
+const std::string kDeviceTypeAll = "default";
+const Name kDeviceNameDefault = {"default "};
+
+struct DatabaseDevice {
+ const Name name;
+ const Params parameters; // parameter values
+};
+struct DatabaseArchitecture {
+ const std::string name;
+ const std::vector<DatabaseDevice> devices;
+};
+struct DatabaseVendor {
+ const std::string type;
+ const std::string name;
+ const std::vector<DatabaseArchitecture> architectures;
+};
+struct DatabaseEntry {
+ const std::string kernel;
+ const Precision precision;
+ const std::vector<std::string> parameter_names;
+ const std::vector<DatabaseVendor> vendors;
+};
+
+// =================================================================================================
+} // namespace database
+} // namespace clblast
+
+// CLBLAST_DATABASE_DATABASE_STRUCTURE_H_
+#endif
diff --git a/src/database/kernel_selection.hpp b/src/database/kernel_selection.hpp
index 82c7d59d..6d74b9f9 100644
--- a/src/database/kernel_selection.hpp
+++ b/src/database/kernel_selection.hpp
@@ -18,21 +18,21 @@ namespace clblast {
namespace database {
// =================================================================================================
-const Database::DatabaseEntry KernelSelectionHalf = {
+const DatabaseEntry KernelSelectionHalf = {
"KernelSelection", Precision::kHalf, {"XGEMM_MIN_INDIRECT_SIZE"}, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "default", { 1*1*1 } },
+ { "default", { { kDeviceNameDefault, Params{ 1*1*1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "default", { 1280*1280*1280 } },
+ { "default", { { kDeviceNameDefault, Params{ 1280*1280*1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 512*512*512 } },
+ { "default", { { kDeviceNameDefault, Params{ 512*512*512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -40,26 +40,26 @@ const Database::DatabaseEntry KernelSelectionHalf = {
// =================================================================================================
-const Database::DatabaseEntry KernelSelectionSingle = {
+const DatabaseEntry KernelSelectionSingle = {
"KernelSelection", Precision::kSingle, {"XGEMM_MIN_INDIRECT_SIZE"}, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "default", { 1*1*1 } },
+ { "default", { { kDeviceNameDefault, Params{ 1*1*1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "default", { 1280*1280*1280 } },
+ { "default", { { kDeviceNameDefault, Params{ 1280*1280*1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{
kDeviceTypeGPU, "ARM", {
- { "default", { 128*128*128} },
+ { "default", { { kDeviceNameDefault, Params{ 128*128*128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 512*512*512 } },
+ { "default", { { kDeviceNameDefault, Params{ 512*512*512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -67,21 +67,21 @@ const Database::DatabaseEntry KernelSelectionSingle = {
// =================================================================================================
-const Database::DatabaseEntry KernelSelectionComplexSingle = {
+const DatabaseEntry KernelSelectionComplexSingle = {
"KernelSelection", Precision::kComplexSingle, {"XGEMM_MIN_INDIRECT_SIZE"}, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "default", { 1*1*1 } },
+ { "default", { { kDeviceNameDefault, Params{ 1*1*1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "default", { 1280*1280*1280 } },
+ { "default", { { kDeviceNameDefault, Params{ 1280*1280*1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 512*512*512 } },
+ { "default", { { kDeviceNameDefault, Params{ 512*512*512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -89,21 +89,21 @@ const Database::DatabaseEntry KernelSelectionComplexSingle = {
// =================================================================================================
-const Database::DatabaseEntry KernelSelectionDouble = {
+const DatabaseEntry KernelSelectionDouble = {
"KernelSelection", Precision::kDouble, {"XGEMM_MIN_INDIRECT_SIZE"}, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "default", { 1*1*1 } },
+ { "default", { { kDeviceNameDefault, Params{ 1*1*1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "default", { 1280*1280*1280 } },
+ { "default", { { kDeviceNameDefault, Params{ 1280*1280*1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 512*512*512 } },
+ { "default", { { kDeviceNameDefault, Params{ 512*512*512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -111,21 +111,21 @@ const Database::DatabaseEntry KernelSelectionDouble = {
// =================================================================================================
-const Database::DatabaseEntry KernelSelectionComplexDouble = {
+const DatabaseEntry KernelSelectionComplexDouble = {
"KernelSelection", Precision::kComplexDouble, {"XGEMM_MIN_INDIRECT_SIZE"}, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "default", { 1*1*1 } },
+ { "default", { { kDeviceNameDefault, Params{ 1*1*1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "default", { 1280*1280*1280 } },
+ { "default", { { kDeviceNameDefault, Params{ 1280*1280*1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 512*512*512 } },
+ { "default", { { kDeviceNameDefault, Params{ 512*512*512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
diff --git a/src/database/kernels/copy.hpp b/src/database/kernels/copy.hpp
deleted file mode 100644
index e5defb32..00000000
--- a/src/database/kernels/copy.hpp
+++ /dev/null
@@ -1,354 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Copy' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry CopyHalf = {
- "Copy", Precision::kHalf, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 16, 8, 4, 4 } },
- { "default", { 16, 8, 4, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 16, 8, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 32, 4, 8 } },
- { "default", { 8, 32, 4, 8 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 8, 8, 1 } },
- { "default", { 32, 8, 8, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 8, 4, 4 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry CopySingle = {
- "Copy", Precision::kSingle, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 4, 1 } },
- { "ATI Radeon HD 6750M", { 16, 8, 2, 1 } },
- { "Ellesmere", { 8, 8, 4, 8 } },
- { "Fiji", { 16, 16, 1, 2 } },
- { "Hawaii", { 32, 8, 2, 2 } },
- { "Oland", { 32, 8, 4, 2 } },
- { "Pitcairn", { 8, 16, 4, 1 } },
- { "Tahiti", { 32, 8, 2, 2 } },
- { "Tonga", { 32, 8, 4, 4 } },
- { "Turks", { 8, 8, 4, 2 } },
- { "default", { 8, 16, 4, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 8, 2, 4 } },
- { "default", { 32, 8, 2, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 16, 8, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 16, 8, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 8, 4, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 16, 8, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 16, 8, 2 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 8, 1 } },
- { "default", { 32, 16, 8, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 8, 8, 2, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 32, 16, 4, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 32, 16, 4, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 16, 8, 2, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 16, 8, 4, 8 } },
- { "Iris", { 16, 8, 1, 2 } },
- { "Iris Pro", { 32, 8, 4, 4 } },
- { "default", { 8, 8, 2, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 8, 1 } },
- { "default", { 32, 8, 8, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 8, 4, 1 } },
- { "GeForce GT 650M", { 16, 16, 4, 2 } },
- { "GeForce GTX 1070", { 8, 16, 4, 1 } },
- { "GeForce GTX 1080", { 8, 32, 4, 1 } },
- { "GeForce GTX 480", { 8, 8, 4, 1 } },
- { "GeForce GTX 670", { 16, 32, 4, 1 } },
- { "GeForce GTX 680", { 32, 16, 4, 1 } },
- { "GeForce GTX 750", { 32, 8, 2, 2 } },
- { "GeForce GTX 750 Ti", { 16, 32, 2, 2 } },
- { "GeForce GTX 980", { 32, 16, 1, 1 } },
- { "GeForce GTX TITAN", { 32, 8, 2, 4 } },
- { "GeForce GTX TITAN Black", { 8, 32, 4, 8 } },
- { "GeForce GTX TITAN X", { 32, 8, 1, 2 } },
- { "TITAN X (Pascal)", { 8, 32, 4, 1 } },
- { "Tesla K20m", { 8, 8, 4, 4 } },
- { "Tesla K40m", { 8, 8, 4, 2 } },
- { "default", { 8, 32, 4, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 8, 8, 1 } },
- { "default", { 32, 8, 8, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 8, 4, 4 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry CopyComplexSingle = {
- "Copy", Precision::kComplexSingle, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 1, 1 } },
- { "ATI Radeon HD 6750M", { 8, 8, 1, 1 } },
- { "Ellesmere", { 16, 16, 1, 4 } },
- { "Fiji", { 16, 8, 1, 2 } },
- { "Hawaii", { 32, 8, 1, 2 } },
- { "Oland", { 8, 16, 1, 1 } },
- { "Pitcairn", { 8, 8, 1, 2 } },
- { "Tahiti", { 8, 8, 2, 2 } },
- { "Tonga", { 8, 32, 1, 2 } },
- { "Turks", { 32, 8, 4, 1 } },
- { "default", { 16, 8, 1, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 16, 4, 2 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 16, 16, 8, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 8, 4, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 8, 2, 2 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 32, 4, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 16, 8, 8, 1 } },
- { "default", { 32, 8, 8, 1 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 16, 8, 2, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 16, 16, 2, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 8, 8, 1, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 8, 32, 2, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 8, 2, 1 } },
- { "Iris", { 16, 8, 1, 2 } },
- { "Iris Pro", { 32, 16, 1, 4 } },
- { "default", { 16, 8, 1, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 4, 1 } },
- { "default", { 32, 8, 4, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 8, 1, 1 } },
- { "GeForce GTX 1070", { 16, 8, 1, 1 } },
- { "GeForce GTX 1080", { 32, 8, 1, 2 } },
- { "GeForce GTX 480", { 16, 16, 1, 1 } },
- { "GeForce GTX 670", { 16, 8, 1, 1 } },
- { "GeForce GTX 750", { 16, 8, 1, 2 } },
- { "GeForce GTX 750 Ti", { 16, 32, 1, 1 } },
- { "GeForce GTX 980", { 8, 8, 1, 1 } },
- { "GeForce GTX TITAN Black", { 16, 8, 1, 1 } },
- { "GeForce GTX TITAN X", { 16, 8, 1, 1 } },
- { "TITAN X (Pascal)", { 8, 16, 2, 1 } },
- { "Tesla K20m", { 8, 8, 1, 4 } },
- { "Tesla K40m", { 16, 8, 1, 1 } },
- { "default", { 32, 8, 1, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 8, 1, 1 } },
- { "default", { 32, 8, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 8, 1, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry CopyDouble = {
- "Copy", Precision::kDouble, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 1, 1 } },
- { "Ellesmere", { 32, 8, 1, 4 } },
- { "Fiji", { 16, 8, 1, 2 } },
- { "Hawaii", { 32, 8, 1, 2 } },
- { "Oland", { 32, 8, 2, 8 } },
- { "Pitcairn", { 32, 8, 1, 1 } },
- { "Tahiti", { 8, 32, 2, 1 } },
- { "Tonga", { 8, 32, 2, 4 } },
- { "default", { 16, 8, 2, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 8, 8, 2 } },
- { "default", { 16, 8, 8, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 32, 8, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 16, 8, 8, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 16, 8, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 16, 32, 2, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 16, 32, 8, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 16, 16, 8, 1 } },
- { "default", { 16, 8, 8, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 8, 8, 8, 1 } },
- { "default", { 8, 8, 8, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 32, 16, 2, 1 } },
- { "GeForce GTX 1070", { 8, 8, 4, 1 } },
- { "GeForce GTX 1080", { 8, 8, 4, 1 } },
- { "GeForce GTX 480", { 8, 8, 2, 1 } },
- { "GeForce GTX 670", { 8, 8, 2, 1 } },
- { "GeForce GTX 680", { 16, 32, 2, 1 } },
- { "GeForce GTX 750", { 8, 16, 2, 1 } },
- { "GeForce GTX 750 Ti", { 16, 8, 2, 1 } },
- { "GeForce GTX 980", { 32, 8, 2, 1 } },
- { "GeForce GTX TITAN", { 16, 32, 2, 2 } },
- { "GeForce GTX TITAN Black", { 16, 8, 2, 8 } },
- { "GeForce GTX TITAN X", { 32, 16, 1, 1 } },
- { "TITAN X (Pascal)", { 8, 8, 2, 2 } },
- { "Tesla K20m", { 8, 8, 2, 1 } },
- { "Tesla K40m", { 8, 8, 2, 2 } },
- { "default", { 32, 32, 2, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 8, 2, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry CopyComplexDouble = {
- "Copy", Precision::kComplexDouble, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 8, 16, 1, 1 } },
- { "Ellesmere", { 8, 32, 1, 2 } },
- { "Fiji", { 8, 16, 1, 1 } },
- { "Hawaii", { 32, 8, 2, 8 } },
- { "Oland", { 8, 16, 1, 1 } },
- { "Pitcairn", { 16, 8, 1, 1 } },
- { "Tahiti", { 8, 16, 1, 1 } },
- { "Tonga", { 16, 8, 2, 1 } },
- { "default", { 8, 16, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 8, 1, 2 } },
- { "default", { 32, 8, 1, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 8, 8, 8, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 8, 8, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 16, 2, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 32, 8, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 16, 8, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 8, 8, 8, 1 } },
- { "default", { 16, 8, 8, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 8, 1 } },
- { "default", { 32, 8, 8, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 8, 8, 1, 1 } },
- { "GeForce GTX 1070", { 8, 32, 1, 4 } },
- { "GeForce GTX 1080", { 8, 8, 1, 1 } },
- { "GeForce GTX 480", { 16, 8, 1, 1 } },
- { "GeForce GTX 670", { 16, 8, 1, 1 } },
- { "GeForce GTX 680", { 8, 8, 1, 1 } },
- { "GeForce GTX 750", { 32, 8, 1, 1 } },
- { "GeForce GTX 750 Ti", { 16, 16, 1, 1 } },
- { "GeForce GTX 980", { 8, 8, 1, 1 } },
- { "GeForce GTX TITAN", { 16, 16, 1, 1 } },
- { "GeForce GTX TITAN Black", { 8, 8, 1, 2 } },
- { "GeForce GTX TITAN X", { 16, 8, 1, 1 } },
- { "TITAN X (Pascal)", { 8, 8, 1, 2 } },
- { "Tesla K20m", { 8, 8, 1, 2 } },
- { "Tesla K40m", { 8, 8, 1, 1 } },
- { "default", { 8, 8, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 8, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/copy/copy.hpp b/src/database/kernels/copy/copy.hpp
new file mode 100644
index 00000000..8c6e7e03
--- /dev/null
+++ b/src/database/kernels/copy/copy.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/copy/copy_16.hpp"
+#include "database/kernels/copy/copy_32.hpp"
+#include "database/kernels/copy/copy_3232.hpp"
+#include "database/kernels/copy/copy_64.hpp"
+#include "database/kernels/copy/copy_6464.hpp"
diff --git a/src/database/kernels/copy/copy_16.hpp b/src/database/kernels/copy/copy_16.hpp
new file mode 100644
index 00000000..faf6d2bc
--- /dev/null
+++ b/src/database/kernels/copy/copy_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry CopyHalf = {
+ "Copy", Precision::kHalf, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp
new file mode 100644
index 00000000..28b56cae
--- /dev/null
+++ b/src/database/kernels/copy/copy_32.hpp
@@ -0,0 +1,162 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry CopySingle = {
+ "Copy", Precision::kSingle, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 8, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 16, 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 8, 32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 8, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/copy/copy_3232.hpp b/src/database/kernels/copy/copy_3232.hpp
new file mode 100644
index 00000000..3c742734
--- /dev/null
+++ b/src/database/kernels/copy/copy_3232.hpp
@@ -0,0 +1,151 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry CopyComplexSingle = {
+ "Copy", Precision::kComplexSingle, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 16, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 16, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 32, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/copy/copy_64.hpp b/src/database/kernels/copy/copy_64.hpp
new file mode 100644
index 00000000..07261310
--- /dev/null
+++ b/src/database/kernels/copy/copy_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry CopyDouble = {
+ "Copy", Precision::kDouble, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 32, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 8, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 32, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 16, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 16, 32, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 16, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/copy/copy_6464.hpp b/src/database/kernels/copy/copy_6464.hpp
new file mode 100644
index 00000000..7b52eb08
--- /dev/null
+++ b/src/database/kernels/copy/copy_6464.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Copy6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry CopyComplexDouble = {
+ "Copy", Precision::kComplexDouble, {"COPY_DIMX", "COPY_DIMY", "COPY_VW", "COPY_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 32, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 32, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/invert.hpp b/src/database/kernels/invert.hpp
index 193d1ab4..b7464382 100644
--- a/src/database/kernels/invert.hpp
+++ b/src/database/kernels/invert.hpp
@@ -15,11 +15,11 @@ namespace clblast {
namespace database {
// =================================================================================================
-const Database::DatabaseEntry InvertHalf = {
+const DatabaseEntry InvertHalf = {
"Invert", Precision::kHalf, {"INTERNAL_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 16 } },
+ { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -27,11 +27,11 @@ const Database::DatabaseEntry InvertHalf = {
// =================================================================================================
-const Database::DatabaseEntry InvertSingle = {
+const DatabaseEntry InvertSingle = {
"Invert", Precision::kSingle, {"INTERNAL_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 16 } },
+ { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -39,11 +39,11 @@ const Database::DatabaseEntry InvertSingle = {
// =================================================================================================
-const Database::DatabaseEntry InvertComplexSingle = {
+const DatabaseEntry InvertComplexSingle = {
"Invert", Precision::kComplexSingle, {"INTERNAL_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 16 } },
+ { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -51,11 +51,11 @@ const Database::DatabaseEntry InvertComplexSingle = {
// =================================================================================================
-const Database::DatabaseEntry InvertDouble = {
+const DatabaseEntry InvertDouble = {
"Invert", Precision::kDouble, {"INTERNAL_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 16 } },
+ { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -63,11 +63,11 @@ const Database::DatabaseEntry InvertDouble = {
// =================================================================================================
-const Database::DatabaseEntry InvertComplexDouble = {
+const DatabaseEntry InvertComplexDouble = {
"Invert", Precision::kComplexDouble, {"INTERNAL_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 16 } },
+ { "default", { { kDeviceNameDefault, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
diff --git a/src/database/kernels/pad.hpp b/src/database/kernels/pad.hpp
deleted file mode 100644
index b6ebde43..00000000
--- a/src/database/kernels/pad.hpp
+++ /dev/null
@@ -1,362 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Pad' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry PadHalf = {
- "Pad", Precision::kHalf, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 16, 8, 1, 2 } },
- { "default", { 16, 8, 1, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 8, 4, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 32, 2, 2 } },
- { "default", { 8, 8, 2, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 16, 8, 4, 2 } },
- { "default", { 16, 8, 4, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 8, 4, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadSingle = {
- "Pad", Precision::kSingle, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 1, 1 } },
- { "ATI Radeon HD 6750M", { 8, 16, 2, 1 } },
- { "Ellesmere", { 32, 8, 2, 2 } },
- { "Fiji", { 16, 16, 1, 2 } },
- { "Hawaii", { 32, 8, 1, 4 } },
- { "Oland", { 8, 8, 1, 2 } },
- { "Pitcairn", { 32, 8, 1, 2 } },
- { "Tahiti", { 32, 8, 1, 2 } },
- { "Tonga", { 16, 16, 2, 2 } },
- { "Turks", { 32, 8, 2, 1 } },
- { "default", { 8, 16, 1, 2 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 8, 1, 4 } },
- { "default", { 32, 8, 1, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 32, 4, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 16, 4, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 8, 2, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 16, 32, 4, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 16, 4, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 4, 1 } },
- { "default", { 32, 8, 4, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 32, 8, 2, 4 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 32, 8, 2, 4 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 16, 8, 1, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 16, 8, 4, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 8, 4, 2 } },
- { "Iris", { 32, 16, 2, 1 } },
- { "Iris Pro", { 16, 8, 2, 1 } },
- { "default", { 32, 8, 4, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 16, 2, 1 } },
- { "default", { 32, 16, 2, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 32, 8, 2, 1 } },
- { "GeForce GT 650M", { 32, 16, 2, 2 } },
- { "GeForce GTX 1070", { 16, 8, 1, 1 } },
- { "GeForce GTX 1080", { 16, 8, 1, 1 } },
- { "GeForce GTX 480", { 32, 8, 1, 4 } },
- { "GeForce GTX 670", { 32, 8, 2, 2 } },
- { "GeForce GTX 680", { 16, 8, 4, 1 } },
- { "GeForce GTX 750", { 32, 16, 4, 2 } },
- { "GeForce GTX 750 Ti", { 16, 8, 4, 1 } },
- { "GeForce GTX 980", { 16, 8, 1, 1 } },
- { "GeForce GTX TITAN", { 32, 8, 2, 1 } },
- { "GeForce GTX TITAN Black", { 32, 8, 1, 2 } },
- { "GeForce GTX TITAN X", { 16, 16, 1, 1 } },
- { "TITAN X (Pascal)", { 16, 8, 1, 2 } },
- { "Tesla K20m", { 32, 8, 2, 1 } },
- { "Tesla K40m", { 32, 8, 1, 1 } },
- { "default", { 32, 8, 4, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 8, 2, 1 } },
- { "default", { 32, 8, 2, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 8, 2, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadComplexSingle = {
- "Pad", Precision::kComplexSingle, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 1, 1 } },
- { "ATI Radeon HD 6750M", { 16, 8, 2, 1 } },
- { "Ellesmere", { 16, 16, 2, 4 } },
- { "Fiji", { 16, 8, 1, 2 } },
- { "Hawaii", { 32, 8, 1, 2 } },
- { "Oland", { 8, 32, 1, 1 } },
- { "Pitcairn", { 8, 8, 1, 2 } },
- { "Tahiti", { 16, 16, 1, 1 } },
- { "Tonga", { 16, 8, 1, 2 } },
- { "Turks", { 16, 8, 4, 4 } },
- { "default", { 16, 8, 1, 2 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 8, 1, 4 } },
- { "default", { 32, 8, 1, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 8, 4, 2 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 8, 2, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 8, 1, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 32, 4, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 8, 2, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 16, 4, 1 } },
- { "default", { 32, 8, 4, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 8, 8, 1, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 8, 1, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 8, 8, 1, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 32, 8, 1, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 8, 1, 1 } },
- { "Iris", { 32, 16, 2, 4 } },
- { "Iris Pro", { 32, 8, 2, 1 } },
- { "default", { 32, 8, 1, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 1, 1 } },
- { "default", { 32, 8, 1, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 16, 1, 1 } },
- { "GeForce GTX 1070", { 8, 32, 1, 1 } },
- { "GeForce GTX 1080", { 32, 8, 1, 1 } },
- { "GeForce GTX 480", { 16, 8, 2, 1 } },
- { "GeForce GTX 670", { 16, 8, 1, 2 } },
- { "GeForce GTX 680", { 16, 32, 1, 2 } },
- { "GeForce GTX 750", { 32, 8, 2, 1 } },
- { "GeForce GTX 750 Ti", { 16, 8, 1, 1 } },
- { "GeForce GTX 980", { 16, 16, 1, 1 } },
- { "GeForce GTX TITAN", { 16, 8, 2, 1 } },
- { "GeForce GTX TITAN Black", { 16, 8, 1, 2 } },
- { "GeForce GTX TITAN X", { 16, 8, 1, 1 } },
- { "TITAN X (Pascal)", { 32, 32, 1, 2 } },
- { "Tesla K20m", { 32, 8, 1, 2 } },
- { "Tesla K40m", { 16, 8, 1, 1 } },
- { "default", { 32, 8, 1, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 8, 4, 1 } },
- { "default", { 32, 8, 4, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 8, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadDouble = {
- "Pad", Precision::kDouble, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 1, 1 } },
- { "Ellesmere", { 8, 32, 2, 1 } },
- { "Fiji", { 8, 16, 1, 2 } },
- { "Hawaii", { 32, 8, 1, 2 } },
- { "Oland", { 8, 32, 1, 1 } },
- { "Pitcairn", { 8, 8, 1, 2 } },
- { "Tahiti", { 32, 8, 1, 1 } },
- { "Tonga", { 32, 8, 4, 1 } },
- { "default", { 16, 16, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 8, 4, 2 } },
- { "default", { 32, 8, 4, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 8, 4, 2 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 8, 4, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 16, 2, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 32, 4, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 32, 4, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 2, 1 } },
- { "default", { 32, 16, 4, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 1, 1 } },
- { "default", { 32, 8, 1, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 32, 8, 1, 1 } },
- { "GeForce GTX 1070", { 8, 8, 1, 1 } },
- { "GeForce GTX 1080", { 32, 32, 2, 1 } },
- { "GeForce GTX 480", { 16, 8, 1, 1 } },
- { "GeForce GTX 670", { 16, 16, 2, 1 } },
- { "GeForce GTX 680", { 32, 32, 1, 2 } },
- { "GeForce GTX 750", { 32, 16, 1, 1 } },
- { "GeForce GTX 750 Ti", { 8, 16, 1, 1 } },
- { "GeForce GTX 980", { 8, 16, 1, 1 } },
- { "GeForce GTX TITAN", { 32, 8, 1, 1 } },
- { "GeForce GTX TITAN Black", { 16, 8, 1, 1 } },
- { "GeForce GTX TITAN X", { 16, 8, 1, 1 } },
- { "TITAN X (Pascal)", { 8, 32, 4, 1 } },
- { "Tesla K20m", { 32, 8, 1, 1 } },
- { "Tesla K40m", { 16, 8, 1, 2 } },
- { "default", { 32, 8, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 8, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadComplexDouble = {
- "Pad", Precision::kComplexDouble, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 16, 8, 1, 1 } },
- { "Ellesmere", { 8, 16, 1, 2 } },
- { "Fiji", { 32, 8, 2, 1 } },
- { "Hawaii", { 32, 8, 1, 1 } },
- { "Oland", { 8, 16, 2, 1 } },
- { "Pitcairn", { 16, 8, 1, 1 } },
- { "Tahiti", { 8, 16, 1, 1 } },
- { "Tonga", { 8, 16, 1, 1 } },
- { "default", { 8, 16, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 8, 4, 1 } },
- { "default", { 16, 8, 4, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 16, 4, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 8, 2, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 8, 2, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 16, 32, 4, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 32, 2, 2 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 2, 1 } },
- { "default", { 32, 8, 2, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 4, 1 } },
- { "default", { 32, 8, 4, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 8, 8, 1, 1 } },
- { "GeForce GTX 1070", { 8, 8, 2, 2 } },
- { "GeForce GTX 1080", { 8, 8, 1, 1 } },
- { "GeForce GTX 480", { 16, 8, 1, 1 } },
- { "GeForce GTX 670", { 32, 8, 1, 1 } },
- { "GeForce GTX 680", { 8, 8, 1, 1 } },
- { "GeForce GTX 750", { 8, 8, 1, 1 } },
- { "GeForce GTX 750 Ti", { 16, 32, 1, 1 } },
- { "GeForce GTX 980", { 16, 16, 1, 1 } },
- { "GeForce GTX TITAN", { 8, 32, 1, 2 } },
- { "GeForce GTX TITAN Black", { 16, 8, 1, 4 } },
- { "GeForce GTX TITAN X", { 16, 8, 1, 1 } },
- { "TITAN X (Pascal)", { 8, 16, 1, 1 } },
- { "Tesla K20m", { 8, 8, 1, 2 } },
- { "Tesla K40m", { 8, 8, 1, 1 } },
- { "default", { 16, 8, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 8, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/pad/pad.hpp b/src/database/kernels/pad/pad.hpp
new file mode 100644
index 00000000..bc91c09f
--- /dev/null
+++ b/src/database/kernels/pad/pad.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/pad/pad_16.hpp"
+#include "database/kernels/pad/pad_32.hpp"
+#include "database/kernels/pad/pad_3232.hpp"
+#include "database/kernels/pad/pad_64.hpp"
+#include "database/kernels/pad/pad_6464.hpp"
diff --git a/src/database/kernels/pad/pad_16.hpp b/src/database/kernels/pad/pad_16.hpp
new file mode 100644
index 00000000..89684314
--- /dev/null
+++ b/src/database/kernels/pad/pad_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadHalf = {
+ "Pad", Precision::kHalf, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp
new file mode 100644
index 00000000..b7ba635f
--- /dev/null
+++ b/src/database/kernels/pad/pad_32.hpp
@@ -0,0 +1,162 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadSingle = {
+ "Pad", Precision::kSingle, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 16, 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 32, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/pad/pad_3232.hpp b/src/database/kernels/pad/pad_3232.hpp
new file mode 100644
index 00000000..1cf80b5f
--- /dev/null
+++ b/src/database/kernels/pad/pad_3232.hpp
@@ -0,0 +1,161 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadComplexSingle = {
+ "Pad", Precision::kComplexSingle, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 32, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/pad/pad_64.hpp b/src/database/kernels/pad/pad_64.hpp
new file mode 100644
index 00000000..76bcdcf7
--- /dev/null
+++ b/src/database/kernels/pad/pad_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadDouble = {
+ "Pad", Precision::kDouble, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/pad/pad_6464.hpp b/src/database/kernels/pad/pad_6464.hpp
new file mode 100644
index 00000000..4246495c
--- /dev/null
+++ b/src/database/kernels/pad/pad_6464.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Pad6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadComplexDouble = {
+ "Pad", Precision::kComplexDouble, {"PAD_DIMX", "PAD_DIMY", "PAD_WPTX", "PAD_WPTY"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 16, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/padtranspose.hpp b/src/database/kernels/padtranspose.hpp
deleted file mode 100644
index bbda5c65..00000000
--- a/src/database/kernels/padtranspose.hpp
+++ /dev/null
@@ -1,361 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Padtranspose' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry PadtransposeHalf = {
- "Padtranspose", Precision::kHalf, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 0, 16, 4 } },
- { "default", { 0, 16, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 0, 8, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 1, 8, 2 } },
- { "default", { 0, 8, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 0, 8, 8 } },
- { "default", { 0, 8, 8 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 0, 8, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadtransposeSingle = {
- "Padtranspose", Precision::kSingle, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 0, 16, 4 } },
- { "ATI Radeon HD 6750M", { 1, 16, 1 } },
- { "Ellesmere", { 1, 8, 4 } },
- { "Fiji", { 0, 16, 2 } },
- { "Hawaii", { 1, 16, 4 } },
- { "Oland", { 0, 16, 4 } },
- { "Pitcairn", { 0, 16, 4 } },
- { "Tahiti", { 0, 16, 4 } },
- { "Tonga", { 0, 16, 2 } },
- { "Turks", { 1, 16, 1 } },
- { "default", { 0, 16, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 0, 8, 2 } },
- { "default", { 0, 8, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 0, 16, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 0, 32, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 0, 32, 1 } },
- { "default", { 0, 8, 8 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 1, 16, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 0, 16, 4 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 1, 16, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 0, 16, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 1, 16, 2 } },
- { "Iris", { 1, 16, 2 } },
- { "Iris Pro", { 1, 16, 2 } },
- { "default", { 1, 16, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 0, 16, 2 } },
- { "default", { 0, 16, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 32, 2 } },
- { "GeForce GTX 1070", { 0, 16, 1 } },
- { "GeForce GTX 1080", { 1, 16, 2 } },
- { "GeForce GTX 480", { 1, 16, 2 } },
- { "GeForce GTX 670", { 1, 32, 2 } },
- { "GeForce GTX 680", { 1, 16, 2 } },
- { "GeForce GTX 750", { 1, 32, 2 } },
- { "GeForce GTX 750 Ti", { 1, 32, 2 } },
- { "GeForce GTX 980", { 0, 16, 1 } },
- { "GeForce GTX TITAN", { 1, 16, 2 } },
- { "GeForce GTX TITAN Black", { 1, 32, 2 } },
- { "GeForce GTX TITAN X", { 1, 32, 1 } },
- { "TITAN X (Pascal)", { 1, 16, 2 } },
- { "Tesla K20m", { 1, 16, 2 } },
- { "Tesla K40m", { 1, 32, 2 } },
- { "default", { 1, 32, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 0, 8, 2 } },
- { "default", { 0, 8, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 16, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadtransposeComplexSingle = {
- "Padtranspose", Precision::kComplexSingle, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 0, 16, 4 } },
- { "ATI Radeon HD 6750M", { 1, 16, 1 } },
- { "Ellesmere", { 0, 8, 4 } },
- { "Fiji", { 1, 16, 2 } },
- { "Hawaii", { 0, 16, 2 } },
- { "Oland", { 0, 8, 4 } },
- { "Pitcairn", { 0, 8, 4 } },
- { "Tahiti", { 0, 16, 2 } },
- { "Tonga", { 0, 16, 2 } },
- { "Turks", { 0, 16, 4 } },
- { "default", { 0, 8, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 1, 16, 2 } },
- { "default", { 1, 16, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 8, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 0, 8, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 0, 8, 4 } },
- { "default", { 0, 8, 8 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 1, 16, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 0, 16, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 1, 16, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 0, 16, 2 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 0, 16, 4 } },
- { "Iris", { 0, 16, 2 } },
- { "Iris Pro", { 1, 16, 2 } },
- { "default", { 1, 16, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 16, 1 } },
- { "default", { 1, 16, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 16, 1 } },
- { "GeForce GTX 1070", { 1, 16, 1 } },
- { "GeForce GTX 1080", { 0, 8, 1 } },
- { "GeForce GTX 480", { 1, 16, 1 } },
- { "GeForce GTX 670", { 1, 16, 1 } },
- { "GeForce GTX 680", { 1, 16, 1 } },
- { "GeForce GTX 750", { 1, 16, 2 } },
- { "GeForce GTX 750 Ti", { 1, 16, 1 } },
- { "GeForce GTX 980", { 0, 16, 1 } },
- { "GeForce GTX TITAN", { 1, 16, 1 } },
- { "GeForce GTX TITAN Black", { 0, 16, 1 } },
- { "GeForce GTX TITAN X", { 1, 32, 1 } },
- { "TITAN X (Pascal)", { 1, 8, 1 } },
- { "Tesla K20m", { 0, 16, 1 } },
- { "Tesla K40m", { 1, 16, 1 } },
- { "default", { 1, 16, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 0, 8, 4 } },
- { "default", { 0, 8, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 8, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadtransposeDouble = {
- "Padtranspose", Precision::kDouble, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 0, 16, 4 } },
- { "Ellesmere", { 0, 16, 4 } },
- { "Fiji", { 0, 16, 2 } },
- { "Hawaii", { 0, 16, 2 } },
- { "Oland", { 0, 16, 4 } },
- { "Pitcairn", { 0, 8, 4 } },
- { "Tahiti", { 1, 16, 2 } },
- { "Tonga", { 0, 8, 2 } },
- { "default", { 0, 16, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 0, 16, 2 } },
- { "default", { 0, 16, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 8, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 0, 64, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 0, 8, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 1, 32, 1 } },
- { "default", { 1, 8, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 0, 16, 1 } },
- { "default", { 0, 16, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 16, 1 } },
- { "GeForce GTX 1070", { 1, 16, 1 } },
- { "GeForce GTX 1080", { 0, 8, 1 } },
- { "GeForce GTX 480", { 1, 16, 1 } },
- { "GeForce GTX 670", { 1, 16, 1 } },
- { "GeForce GTX 680", { 1, 16, 1 } },
- { "GeForce GTX 750", { 1, 16, 2 } },
- { "GeForce GTX 750 Ti", { 1, 32, 2 } },
- { "GeForce GTX 980", { 1, 32, 1 } },
- { "GeForce GTX TITAN", { 0, 16, 1 } },
- { "GeForce GTX TITAN Black", { 0, 16, 1 } },
- { "GeForce GTX TITAN X", { 1, 32, 1 } },
- { "TITAN X (Pascal)", { 0, 8, 1 } },
- { "Tesla K20m", { 0, 16, 1 } },
- { "Tesla K40m", { 1, 16, 1 } },
- { "default", { 1, 16, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 16, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry PadtransposeComplexDouble = {
- "Padtranspose", Precision::kComplexDouble, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 0, 8, 4 } },
- { "Ellesmere", { 0, 8, 4 } },
- { "Fiji", { 0, 8, 2 } },
- { "Hawaii", { 0, 8, 4 } },
- { "Oland", { 0, 8, 4 } },
- { "Pitcairn", { 0, 8, 4 } },
- { "Tahiti", { 0, 8, 2 } },
- { "Tonga", { 0, 8, 2 } },
- { "default", { 0, 8, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 0, 8, 1 } },
- { "default", { 0, 8, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 0, 8, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 8, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 1, 16, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 1, 8, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 0, 8, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 1, 8, 4 } },
- { "default", { 0, 8, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 0, 16, 1 } },
- { "default", { 0, 16, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 16, 1 } },
- { "GeForce GTX 1070", { 1, 16, 1 } },
- { "GeForce GTX 1080", { 1, 8, 1 } },
- { "GeForce GTX 480", { 1, 16, 1 } },
- { "GeForce GTX 670", { 1, 16, 1 } },
- { "GeForce GTX 680", { 1, 32, 1 } },
- { "GeForce GTX 750", { 1, 16, 1 } },
- { "GeForce GTX 750 Ti", { 1, 8, 2 } },
- { "GeForce GTX 980", { 0, 16, 1 } },
- { "GeForce GTX TITAN", { 1, 16, 1 } },
- { "GeForce GTX TITAN Black", { 0, 16, 1 } },
- { "GeForce GTX TITAN X", { 1, 32, 1 } },
- { "TITAN X (Pascal)", { 1, 8, 1 } },
- { "Tesla K20m", { 1, 16, 1 } },
- { "Tesla K40m", { 1, 16, 1 } },
- { "default", { 1, 16, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 0, 8, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/padtranspose/padtranspose.hpp b/src/database/kernels/padtranspose/padtranspose.hpp
new file mode 100644
index 00000000..c395653a
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/padtranspose/padtranspose_16.hpp"
+#include "database/kernels/padtranspose/padtranspose_32.hpp"
+#include "database/kernels/padtranspose/padtranspose_3232.hpp"
+#include "database/kernels/padtranspose/padtranspose_64.hpp"
+#include "database/kernels/padtranspose/padtranspose_6464.hpp"
diff --git a/src/database/kernels/padtranspose/padtranspose_16.hpp b/src/database/kernels/padtranspose/padtranspose_16.hpp
new file mode 100644
index 00000000..ea09a062
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadtransposeHalf = {
+ "Padtranspose", Precision::kHalf, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp
new file mode 100644
index 00000000..6e607768
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose_32.hpp
@@ -0,0 +1,161 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadtransposeSingle = {
+ "Padtranspose", Precision::kSingle, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 0, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 0, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/padtranspose/padtranspose_3232.hpp b/src/database/kernels/padtranspose/padtranspose_3232.hpp
new file mode 100644
index 00000000..b959dfaf
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose_3232.hpp
@@ -0,0 +1,161 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadtransposeComplexSingle = {
+ "Padtranspose", Precision::kComplexSingle, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/padtranspose/padtranspose_64.hpp b/src/database/kernels/padtranspose/padtranspose_64.hpp
new file mode 100644
index 00000000..3539d474
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadtransposeDouble = {
+ "Padtranspose", Precision::kDouble, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/padtranspose/padtranspose_6464.hpp b/src/database/kernels/padtranspose/padtranspose_6464.hpp
new file mode 100644
index 00000000..7fe6dca3
--- /dev/null
+++ b/src/database/kernels/padtranspose/padtranspose_6464.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Padtranspose6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry PadtransposeComplexDouble = {
+ "Padtranspose", Precision::kComplexDouble, {"PADTRA_PAD", "PADTRA_TILE", "PADTRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/transpose.hpp b/src/database/kernels/transpose.hpp
deleted file mode 100644
index b00a23dc..00000000
--- a/src/database/kernels/transpose.hpp
+++ /dev/null
@@ -1,350 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Transpose' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry TransposeHalf = {
- "Transpose", Precision::kHalf, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 4, 0, 1, 8 } },
- { "default", { 4, 0, 1, 8 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 1, 1, 8 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 16, 0, 0, 4 } },
- { "default", { 8, 1, 0, 8 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 8, 0, 0, 4 } },
- { "default", { 8, 0, 0, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 0, 1, 8 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry TransposeSingle = {
- "Transpose", Precision::kSingle, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 0, 1, 8 } },
- { "ATI Radeon HD 6750M", { 8, 0, 1, 2 } },
- { "Ellesmere", { 16, 0, 1, 4 } },
- { "Fiji", { 16, 0, 1, 2 } },
- { "Hawaii", { 4, 0, 1, 8 } },
- { "Oland", { 8, 0, 1, 4 } },
- { "Pitcairn", { 16, 0, 1, 1 } },
- { "Tahiti", { 4, 0, 1, 4 } },
- { "Tonga", { 8, 1, 1, 2 } },
- { "Turks", { 8, 0, 1, 2 } },
- { "default", { 8, 0, 1, 2 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 8, 0, 1, 4 } },
- { "default", { 8, 0, 1, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 1, 0, 16 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 0, 0, 8 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 0, 1, 8 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 0, 0, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 1, 0, 16 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 4, 0, 0, 8 } },
- { "default", { 4, 0, 0, 8 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 16, 0, 1, 4 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 16, 0, 0, 4 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 16, 0, 0, 4 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 8, 0, 1, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 16, 0, 1, 2 } },
- { "Iris", { 8, 1, 0, 4 } },
- { "Iris Pro", { 16, 1, 0, 4 } },
- { "default", { 16, 0, 0, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 16, 1, 1, 1 } },
- { "default", { 16, 1, 1, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 32, 1, 1, 2 } },
- { "GeForce GT 650M", { 8, 1, 0, 4 } },
- { "GeForce GTX 1070", { 8, 0, 1, 4 } },
- { "GeForce GTX 1080", { 4, 0, 0, 4 } },
- { "GeForce GTX 480", { 16, 1, 0, 2 } },
- { "GeForce GTX 670", { 16, 1, 1, 2 } },
- { "GeForce GTX 680", { 16, 1, 1, 2 } },
- { "GeForce GTX 750", { 4, 0, 0, 8 } },
- { "GeForce GTX 750 Ti", { 32, 1, 0, 2 } },
- { "GeForce GTX 980", { 16, 0, 0, 1 } },
- { "GeForce GTX TITAN", { 8, 1, 0, 4 } },
- { "GeForce GTX TITAN Black", { 8, 1, 0, 4 } },
- { "GeForce GTX TITAN X", { 16, 0, 0, 4 } },
- { "TITAN X (Pascal)", { 8, 0, 0, 4 } },
- { "Tesla K20m", { 8, 0, 0, 4 } },
- { "Tesla K40m", { 8, 1, 0, 4 } },
- { "default", { 8, 1, 0, 4 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 8, 1, 1, 4 } },
- { "default", { 8, 1, 1, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 0, 1, 4 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry TransposeComplexSingle = {
- "Transpose", Precision::kComplexSingle, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 1, 1, 4 } },
- { "ATI Radeon HD 6750M", { 16, 1, 1, 1 } },
- { "Ellesmere", { 4, 0, 1, 4 } },
- { "Fiji", { 8, 1, 1, 2 } },
- { "Hawaii", { 16, 0, 1, 1 } },
- { "Oland", { 4, 0, 1, 2 } },
- { "Pitcairn", { 8, 0, 1, 1 } },
- { "Tahiti", { 16, 0, 1, 1 } },
- { "Tonga", { 16, 0, 1, 1 } },
- { "Turks", { 8, 1, 1, 4 } },
- { "default", { 8, 0, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 0, 0, 2 } },
- { "default", { 16, 0, 0, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 0, 1, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 8, 0, 0, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 0, 0, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 1, 0, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 1, 0, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 16, 0, 0, 4 } },
- { "default", { 4, 1, 0, 8 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 16, 1, 1, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 0, 0, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 8, 0, 0, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 16, 1, 1, 2 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 16, 1, 0, 2 } },
- { "Iris", { 8, 0, 0, 2 } },
- { "Iris Pro", { 16, 1, 0, 2 } },
- { "default", { 16, 1, 0, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 1, 1, 1 } },
- { "GeForce GTX 1070", { 16, 1, 1, 1 } },
- { "GeForce GTX 1080", { 16, 1, 0, 1 } },
- { "GeForce GTX 480", { 16, 1, 0, 1 } },
- { "GeForce GTX 670", { 16, 1, 1, 1 } },
- { "GeForce GTX 680", { 16, 1, 1, 1 } },
- { "GeForce GTX 750", { 16, 1, 0, 1 } },
- { "GeForce GTX 750 Ti", { 16, 1, 0, 1 } },
- { "GeForce GTX 980", { 16, 1, 0, 1 } },
- { "GeForce GTX TITAN", { 16, 0, 0, 1 } },
- { "GeForce GTX TITAN Black", { 16, 1, 0, 1 } },
- { "GeForce GTX TITAN X", { 32, 1, 0, 1 } },
- { "TITAN X (Pascal)", { 8, 1, 0, 2 } },
- { "Tesla K20m", { 16, 0, 0, 1 } },
- { "Tesla K40m", { 16, 1, 0, 1 } },
- { "default", { 16, 1, 0, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 16, 1, 0, 1 } },
- { "default", { 16, 1, 0, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 1, 1, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry TransposeDouble = {
- "Transpose", Precision::kDouble, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 0, 1, 4 } },
- { "Ellesmere", { 4, 0, 1, 4 } },
- { "Fiji", { 8, 1, 1, 2 } },
- { "Hawaii", { 16, 0, 1, 1 } },
- { "Oland", { 8, 1, 1, 2 } },
- { "Pitcairn", { 4, 0, 1, 2 } },
- { "Tahiti", { 4, 1, 1, 4 } },
- { "Tonga", { 4, 0, 1, 4 } },
- { "default", { 4, 0, 1, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 8, 0, 0, 1 } },
- { "default", { 8, 0, 0, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 1, 0, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 0, 0, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 1, 0, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 1, 0, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 0, 0, 16 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 4, 0, 0, 8 } },
- { "default", { 4, 1, 0, 8 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 1, 0, 1 } },
- { "default", { 32, 1, 0, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 1, 1, 2 } },
- { "GeForce GTX 1070", { 8, 0, 1, 2 } },
- { "GeForce GTX 1080", { 8, 0, 0, 2 } },
- { "GeForce GTX 480", { 8, 1, 0, 2 } },
- { "GeForce GTX 670", { 16, 1, 1, 2 } },
- { "GeForce GTX 680", { 16, 1, 1, 2 } },
- { "GeForce GTX 750", { 16, 1, 0, 1 } },
- { "GeForce GTX 750 Ti", { 32, 1, 0, 2 } },
- { "GeForce GTX 980", { 16, 0, 0, 2 } },
- { "GeForce GTX TITAN", { 8, 0, 0, 2 } },
- { "GeForce GTX TITAN Black", { 16, 1, 0, 2 } },
- { "GeForce GTX TITAN X", { 32, 1, 0, 1 } },
- { "TITAN X (Pascal)", { 16, 1, 0, 2 } },
- { "Tesla K20m", { 16, 1, 0, 2 } },
- { "Tesla K40m", { 16, 1, 1, 2 } },
- { "default", { 16, 1, 1, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 1, 1, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry TransposeComplexDouble = {
- "Transpose", Precision::kComplexDouble, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 1, 1, 2 } },
- { "Ellesmere", { 16, 0, 1, 1 } },
- { "Fiji", { 16, 0, 1, 1 } },
- { "Hawaii", { 4, 0, 1, 2 } },
- { "Oland", { 16, 0, 1, 1 } },
- { "Pitcairn", { 4, 0, 1, 1 } },
- { "Tahiti", { 16, 0, 1, 1 } },
- { "Tonga", { 8, 1, 1, 2 } },
- { "default", { 16, 0, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 8, 0, 0, 1 } },
- { "default", { 8, 0, 0, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 0, 1, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 0, 0, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 0, 0, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 1, 0, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 0, 1, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 16, 1, 0, 2 } },
- { "default", { 4, 0, 0, 8 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 1, 1, 1 } },
- { "GeForce GTX 1070", { 8, 0, 0, 1 } },
- { "GeForce GTX 1080", { 8, 0, 0, 1 } },
- { "GeForce GTX 480", { 8, 1, 0, 1 } },
- { "GeForce GTX 670", { 16, 1, 1, 1 } },
- { "GeForce GTX 680", { 16, 1, 1, 1 } },
- { "GeForce GTX 750", { 16, 1, 0, 1 } },
- { "GeForce GTX 750 Ti", { 16, 1, 0, 1 } },
- { "GeForce GTX 980", { 32, 1, 0, 1 } },
- { "GeForce GTX TITAN", { 16, 1, 0, 1 } },
- { "GeForce GTX TITAN Black", { 16, 0, 0, 1 } },
- { "GeForce GTX TITAN X", { 32, 1, 0, 1 } },
- { "TITAN X (Pascal)", { 8, 0, 0, 1 } },
- { "Tesla K20m", { 16, 1, 0, 1 } },
- { "Tesla K40m", { 16, 1, 0, 1 } },
- { "default", { 16, 1, 0, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 16, 1, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/transpose/transpose.hpp b/src/database/kernels/transpose/transpose.hpp
new file mode 100644
index 00000000..fa262c50
--- /dev/null
+++ b/src/database/kernels/transpose/transpose.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/transpose/transpose_16.hpp"
+#include "database/kernels/transpose/transpose_32.hpp"
+#include "database/kernels/transpose/transpose_3232.hpp"
+#include "database/kernels/transpose/transpose_64.hpp"
+#include "database/kernels/transpose/transpose_6464.hpp"
diff --git a/src/database/kernels/transpose/transpose_16.hpp b/src/database/kernels/transpose/transpose_16.hpp
new file mode 100644
index 00000000..e63102d1
--- /dev/null
+++ b/src/database/kernels/transpose/transpose_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry TransposeHalf = {
+ "Transpose", Precision::kHalf, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 1, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp
new file mode 100644
index 00000000..dcc549e2
--- /dev/null
+++ b/src/database/kernels/transpose/transpose_32.hpp
@@ -0,0 +1,162 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry TransposeSingle = {
+ "Transpose", Precision::kSingle, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 16, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 32, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/transpose/transpose_3232.hpp b/src/database/kernels/transpose/transpose_3232.hpp
new file mode 100644
index 00000000..24e02f29
--- /dev/null
+++ b/src/database/kernels/transpose/transpose_3232.hpp
@@ -0,0 +1,153 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry TransposeComplexSingle = {
+ "Transpose", Precision::kComplexSingle, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 8, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 16, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/transpose/transpose_64.hpp b/src/database/kernels/transpose/transpose_64.hpp
new file mode 100644
index 00000000..ad806d21
--- /dev/null
+++ b/src/database/kernels/transpose/transpose_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry TransposeDouble = {
+ "Transpose", Precision::kDouble, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 4, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/transpose/transpose_6464.hpp b/src/database/kernels/transpose/transpose_6464.hpp
new file mode 100644
index 00000000..3f59b916
--- /dev/null
+++ b/src/database/kernels/transpose/transpose_6464.hpp
@@ -0,0 +1,123 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Transpose6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry TransposeComplexDouble = {
+ "Transpose", Precision::kComplexDouble, {"TRA_DIM", "TRA_PAD", "TRA_SHUFFLE", "TRA_WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 4, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xaxpy.hpp b/src/database/kernels/xaxpy.hpp
deleted file mode 100644
index 5cb225d1..00000000
--- a/src/database/kernels/xaxpy.hpp
+++ /dev/null
@@ -1,362 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xaxpy' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XaxpyHalf = {
- "Xaxpy", Precision::kHalf, {"VW", "WGS", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 4, 128, 4 } },
- { "default", { 4, 128, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 1, 64, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 64, 1 } },
- { "default", { 8, 64, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 8, 64, 1 } },
- { "default", { 8, 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XaxpySingle = {
- "Xaxpy", Precision::kSingle, {"VW", "WGS", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 128, 1 } },
- { "ATI Radeon HD 6750M", { 1, 256, 2 } },
- { "Ellesmere", { 1, 64, 4 } },
- { "Fiji", { 4, 64, 1 } },
- { "Hawaii", { 2, 64, 2 } },
- { "Oland", { 1, 128, 1 } },
- { "Pitcairn", { 2, 128, 1 } },
- { "Tahiti", { 2, 64, 1 } },
- { "Tonga", { 1, 256, 8 } },
- { "Turks", { 2, 256, 1 } },
- { "default", { 2, 256, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 4, 256, 1 } },
- { "default", { 4, 256, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 8, 512, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 512, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 1, 128, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 256, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 1024, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 1, 128, 1 } },
- { "default", { 8, 512, 1 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 1, 128, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 1, 256, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 1, 64, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 1, 64, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 512, 1 } },
- { "Iris", { 1, 64, 1 } },
- { "Iris Pro", { 1, 128, 2 } },
- { "default", { 4, 256, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 2, 1024, 2 } },
- { "default", { 2, 1024, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 2, 64, 1 } },
- { "GeForce GT 650M", { 2, 1024, 1 } },
- { "GeForce GTX 1070", { 1, 64, 4 } },
- { "GeForce GTX 1080", { 1, 256, 1 } },
- { "GeForce GTX 480", { 2, 128, 1 } },
- { "GeForce GTX 670", { 2, 64, 1 } },
- { "GeForce GTX 680", { 1, 128, 1 } },
- { "GeForce GTX 750", { 1, 64, 1 } },
- { "GeForce GTX 750 Ti", { 2, 64, 1 } },
- { "GeForce GTX 980", { 1, 1024, 1 } },
- { "GeForce GTX TITAN", { 4, 256, 1 } },
- { "GeForce GTX TITAN Black", { 4, 128, 4 } },
- { "GeForce GTX TITAN X", { 1, 64, 1 } },
- { "TITAN X (Pascal)", { 4, 128, 1 } },
- { "Tesla K20m", { 4, 128, 1 } },
- { "Tesla K40m", { 4, 128, 1 } },
- { "default", { 4, 1024, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 4, 128, 2 } },
- { "default", { 4, 128, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 4, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XaxpyComplexSingle = {
- "Xaxpy", Precision::kComplexSingle, {"VW", "WGS", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 64, 8 } },
- { "ATI Radeon HD 6750M", { 1, 64, 1 } },
- { "Ellesmere", { 2, 256, 1 } },
- { "Fiji", { 1, 128, 2 } },
- { "Hawaii", { 1, 128, 2 } },
- { "Oland", { 1, 128, 1 } },
- { "Pitcairn", { 1, 64, 1 } },
- { "Tahiti", { 1, 64, 1 } },
- { "Tonga", { 1, 256, 8 } },
- { "Turks", { 2, 256, 1 } },
- { "default", { 1, 128, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 1, 256, 1 } },
- { "default", { 1, 256, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 1024, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 256, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 1024, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 1, 1024, 2 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 1024, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 2, 1024, 1 } },
- { "default", { 8, 1024, 1 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 4, 64, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 1, 64, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 1, 64, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 1, 64, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 4, 64, 1 } },
- { "Iris", { 2, 128, 1 } },
- { "Iris Pro", { 1, 256, 8 } },
- { "default", { 4, 64, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 1024, 1 } },
- { "default", { 1, 1024, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 512, 1 } },
- { "GeForce GTX 1070", { 1, 64, 2 } },
- { "GeForce GTX 1080", { 2, 64, 1 } },
- { "GeForce GTX 480", { 1, 256, 1 } },
- { "GeForce GTX 670", { 1, 256, 1 } },
- { "GeForce GTX 680", { 1, 256, 1 } },
- { "GeForce GTX 750", { 1, 512, 1 } },
- { "GeForce GTX 750 Ti", { 1, 512, 1 } },
- { "GeForce GTX 980", { 1, 64, 1 } },
- { "GeForce GTX TITAN", { 1, 256, 1 } },
- { "GeForce GTX TITAN Black", { 1, 128, 2 } },
- { "GeForce GTX TITAN X", { 1, 512, 1 } },
- { "TITAN X (Pascal)", { 2, 512, 1 } },
- { "Tesla K20m", { 1, 128, 1 } },
- { "Tesla K40m", { 1, 128, 1 } },
- { "default", { 1, 256, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 128, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XaxpyDouble = {
- "Xaxpy", Precision::kDouble, {"VW", "WGS", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 256, 1 } },
- { "Ellesmere", { 2, 64, 4 } },
- { "Fiji", { 2, 64, 4 } },
- { "Hawaii", { 1, 64, 2 } },
- { "Oland", { 1, 64, 1 } },
- { "Pitcairn", { 1, 128, 1 } },
- { "Tahiti", { 1, 64, 1 } },
- { "Tonga", { 1, 128, 4 } },
- { "default", { 2, 64, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 2, 128, 2 } },
- { "default", { 2, 128, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 64, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 1024, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 2, 1024, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 8, 64, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 8, 256, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 8, 2048, 1 } },
- { "default", { 8, 64, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 2, 512, 1 } },
- { "default", { 2, 512, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 64, 1 } },
- { "GeForce GTX 1070", { 1, 64, 8 } },
- { "GeForce GTX 1080", { 1, 128, 1 } },
- { "GeForce GTX 480", { 1, 128, 1 } },
- { "GeForce GTX 670", { 1, 64, 1 } },
- { "GeForce GTX 680", { 1, 64, 1 } },
- { "GeForce GTX 750", { 1, 128, 1 } },
- { "GeForce GTX 750 Ti", { 1, 256, 2 } },
- { "GeForce GTX 980", { 1, 256, 1 } },
- { "GeForce GTX TITAN", { 2, 1024, 1 } },
- { "GeForce GTX TITAN Black", { 2, 128, 1 } },
- { "GeForce GTX TITAN X", { 1, 512, 1 } },
- { "TITAN X (Pascal)", { 2, 512, 1 } },
- { "Tesla K20m", { 2, 128, 1 } },
- { "Tesla K40m", { 2, 128, 1 } },
- { "default", { 1, 128, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 256, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XaxpyComplexDouble = {
- "Xaxpy", Precision::kComplexDouble, {"VW", "WGS", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 128, 1 } },
- { "Ellesmere", { 1, 128, 1 } },
- { "Fiji", { 1, 64, 1 } },
- { "Hawaii", { 2, 64, 1 } },
- { "Oland", { 1, 256, 1 } },
- { "Pitcairn", { 1, 128, 1 } },
- { "Tahiti", { 1, 128, 1 } },
- { "Tonga", { 1, 64, 1 } },
- { "default", { 1, 128, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 1, 64, 8 } },
- { "default", { 1, 64, 8 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 1024, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 8, 128, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 128, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 8, 512, 1 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 8, 1024, 1 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 1, 256, 1 } },
- { "default", { 8, 256, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 1024, 1 } },
- { "default", { 1, 1024, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 64, 1 } },
- { "GeForce GTX 1070", { 1, 64, 2 } },
- { "GeForce GTX 1080", { 1, 256, 1 } },
- { "GeForce GTX 480", { 1, 128, 1 } },
- { "GeForce GTX 670", { 1, 256, 1 } },
- { "GeForce GTX 680", { 1, 64, 1 } },
- { "GeForce GTX 750", { 1, 1024, 1 } },
- { "GeForce GTX 750 Ti", { 1, 64, 2 } },
- { "GeForce GTX 980", { 1, 1024, 1 } },
- { "GeForce GTX TITAN", { 1, 64, 4 } },
- { "GeForce GTX TITAN Black", { 1, 128, 4 } },
- { "GeForce GTX TITAN X", { 1, 1024, 1 } },
- { "TITAN X (Pascal)", { 1, 256, 2 } },
- { "Tesla K20m", { 1, 64, 1 } },
- { "Tesla K40m", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 256, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xaxpy/xaxpy.hpp b/src/database/kernels/xaxpy/xaxpy.hpp
new file mode 100644
index 00000000..aa920183
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xaxpy/xaxpy_16.hpp"
+#include "database/kernels/xaxpy/xaxpy_32.hpp"
+#include "database/kernels/xaxpy/xaxpy_3232.hpp"
+#include "database/kernels/xaxpy/xaxpy_64.hpp"
+#include "database/kernels/xaxpy/xaxpy_6464.hpp"
diff --git a/src/database/kernels/xaxpy/xaxpy_16.hpp b/src/database/kernels/xaxpy/xaxpy_16.hpp
new file mode 100644
index 00000000..d102bb52
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XaxpyHalf = {
+ "Xaxpy", Precision::kHalf, {"VW", "WGS", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp
new file mode 100644
index 00000000..38d595db
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy_32.hpp
@@ -0,0 +1,162 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XaxpySingle = {
+ "Xaxpy", Precision::kSingle, {"VW", "WGS", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 8, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 2, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 512, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xaxpy/xaxpy_3232.hpp b/src/database/kernels/xaxpy/xaxpy_3232.hpp
new file mode 100644
index 00000000..e002c521
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy_3232.hpp
@@ -0,0 +1,161 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XaxpyComplexSingle = {
+ "Xaxpy", Precision::kComplexSingle, {"VW", "WGS", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 1, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 4, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xaxpy/xaxpy_64.hpp b/src/database/kernels/xaxpy/xaxpy_64.hpp
new file mode 100644
index 00000000..51196633
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XaxpyDouble = {
+ "Xaxpy", Precision::kDouble, {"VW", "WGS", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 8, 2048, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 2, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xaxpy/xaxpy_6464.hpp b/src/database/kernels/xaxpy/xaxpy_6464.hpp
new file mode 100644
index 00000000..5249fe84
--- /dev/null
+++ b/src/database/kernels/xaxpy/xaxpy_6464.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xaxpy6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XaxpyComplexDouble = {
+ "Xaxpy", Precision::kComplexDouble, {"VW", "WGS", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 8, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 8, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 8, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xdot.hpp b/src/database/kernels/xdot.hpp
deleted file mode 100644
index 986c32b2..00000000
--- a/src/database/kernels/xdot.hpp
+++ /dev/null
@@ -1,292 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xdot' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XdotHalf = {
- "Xdot", Precision::kHalf, {"WGS1", "WGS2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 256, 64 } },
- { "default", { 256, 64 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 256, 32 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 128, 32 } },
- { "default", { 128, 32 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 64, 64 } },
- { "default", { 64, 64 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 64 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XdotSingle = {
- "Xdot", Precision::kSingle, {"WGS1", "WGS2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 128, 32 } },
- { "ATI Radeon HD 6750M", { 256, 32 } },
- { "Ellesmere", { 128, 32 } },
- { "Fiji", { 256, 32 } },
- { "Oland", { 256, 32 } },
- { "Pitcairn", { 128, 32 } },
- { "Tahiti", { 128, 32 } },
- { "Tonga", { 64, 32 } },
- { "Turks", { 128, 64 } },
- { "default", { 256, 32 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 32 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1024, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 64, 128 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 64, 32 } },
- { "default", { 64, 64 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 64, 32 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 256, 32 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 64, 32 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 512, 128 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 32 } },
- { "Iris Pro", { 512, 64 } },
- { "default", { 64, 32 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 32 } },
- { "GeForce GT 650M", { 128, 64 } },
- { "GeForce GTX 1070", { 128, 1024 } },
- { "GeForce GTX 1080", { 512, 64 } },
- { "GeForce GTX 480", { 512, 32 } },
- { "GeForce GTX 670", { 512, 1024 } },
- { "GeForce GTX 680", { 128, 128 } },
- { "GeForce GTX 750", { 128, 32 } },
- { "GeForce GTX 750 Ti", { 64, 32 } },
- { "GeForce GTX 980", { 256, 32 } },
- { "GeForce GTX TITAN Black", { 512, 64 } },
- { "GeForce GTX TITAN X", { 256, 32 } },
- { "TITAN X (Pascal)", { 1024, 32 } },
- { "Tesla K20m", { 1024, 32 } },
- { "default", { 256, 64 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 128, 64 } },
- { "default", { 128, 64 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XdotComplexSingle = {
- "Xdot", Precision::kComplexSingle, {"WGS1", "WGS2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 32 } },
- { "ATI Radeon HD 6750M", { 256, 256 } },
- { "Ellesmere", { 256, 32 } },
- { "Fiji", { 256, 64 } },
- { "Oland", { 128, 32 } },
- { "Pitcairn", { 256, 32 } },
- { "Tahiti", { 64, 32 } },
- { "Tonga", { 256, 64 } },
- { "Turks", { 128, 32 } },
- { "default", { 256, 32 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 128, 64 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1024, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 64, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 256, 32 } },
- { "default", { 256, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 256, 32 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 256, 32 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 32, 32 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 512, 32 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 256 } },
- { "Iris Pro", { 32, 32 } },
- { "default", { 32, 32 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 64, 32 } },
- { "GeForce GTX 1070", { 128, 32 } },
- { "GeForce GTX 1080", { 128, 64 } },
- { "GeForce GTX 480", { 512, 32 } },
- { "GeForce GTX 670", { 256, 32 } },
- { "GeForce GTX 680", { 128, 64 } },
- { "GeForce GTX 750", { 64, 32 } },
- { "GeForce GTX 750 Ti", { 64, 32 } },
- { "GeForce GTX 980", { 256, 64 } },
- { "GeForce GTX TITAN Black", { 128, 64 } },
- { "GeForce GTX TITAN X", { 256, 32 } },
- { "TITAN X (Pascal)", { 256, 32 } },
- { "Tesla K20m", { 512, 32 } },
- { "default", { 512, 64 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 64, 256 } },
- { "default", { 64, 256 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 256, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XdotDouble = {
- "Xdot", Precision::kDouble, {"WGS1", "WGS2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 128 } },
- { "Ellesmere", { 128, 64 } },
- { "Fiji", { 256, 32 } },
- { "Oland", { 256, 32 } },
- { "Pitcairn", { 128, 32 } },
- { "Tahiti", { 256, 32 } },
- { "Tonga", { 128, 64 } },
- { "default", { 128, 64 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 64, 128 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 512, 64 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 64, 64 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 256, 32 } },
- { "default", { 256, 64 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 32 } },
- { "GeForce GTX 1070", { 128, 512 } },
- { "GeForce GTX 1080", { 128, 128 } },
- { "GeForce GTX 480", { 512, 32 } },
- { "GeForce GTX 670", { 256, 32 } },
- { "GeForce GTX 680", { 128, 64 } },
- { "GeForce GTX 750", { 64, 256 } },
- { "GeForce GTX 750 Ti", { 128, 64 } },
- { "GeForce GTX 980", { 128, 32 } },
- { "GeForce GTX TITAN Black", { 128, 64 } },
- { "GeForce GTX TITAN X", { 256, 32 } },
- { "TITAN X (Pascal)", { 128, 32 } },
- { "Tesla K20m", { 512, 32 } },
- { "default", { 128, 128 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 64 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XdotComplexDouble = {
- "Xdot", Precision::kComplexDouble, {"WGS1", "WGS2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 32 } },
- { "Ellesmere", { 256, 32 } },
- { "Fiji", { 256, 32 } },
- { "Oland", { 256, 32 } },
- { "Pitcairn", { 256, 32 } },
- { "Tahiti", { 256, 32 } },
- { "Tonga", { 128, 64 } },
- { "default", { 256, 32 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 128 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1024, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 1024, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 32 } },
- { "default", { 128, 32 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 64, 32 } },
- { "GeForce GTX 1070", { 128, 64 } },
- { "GeForce GTX 1080", { 128, 32 } },
- { "GeForce GTX 480", { 512, 32 } },
- { "GeForce GTX 670", { 512, 128 } },
- { "GeForce GTX 680", { 256, 64 } },
- { "GeForce GTX 750", { 256, 32 } },
- { "GeForce GTX 750 Ti", { 64, 32 } },
- { "GeForce GTX 980", { 64, 32 } },
- { "GeForce GTX TITAN Black", { 128, 32 } },
- { "GeForce GTX TITAN X", { 128, 32 } },
- { "TITAN X (Pascal)", { 128, 64 } },
- { "Tesla K20m", { 128, 32 } },
- { "default", { 128, 64 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 256, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xdot/xdot.hpp b/src/database/kernels/xdot/xdot.hpp
new file mode 100644
index 00000000..5d54cdc9
--- /dev/null
+++ b/src/database/kernels/xdot/xdot.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xdot/xdot_16.hpp"
+#include "database/kernels/xdot/xdot_32.hpp"
+#include "database/kernels/xdot/xdot_3232.hpp"
+#include "database/kernels/xdot/xdot_64.hpp"
+#include "database/kernels/xdot/xdot_6464.hpp"
diff --git a/src/database/kernels/xdot/xdot_16.hpp b/src/database/kernels/xdot/xdot_16.hpp
new file mode 100644
index 00000000..ba9307dd
--- /dev/null
+++ b/src/database/kernels/xdot/xdot_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XdotHalf = {
+ "Xdot", Precision::kHalf, {"WGS1", "WGS2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp
new file mode 100644
index 00000000..933a3d14
--- /dev/null
+++ b/src/database/kernels/xdot/xdot_32.hpp
@@ -0,0 +1,137 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XdotSingle = {
+ "Xdot", Precision::kSingle, {"WGS1", "WGS2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 512, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 512, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1024, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 128, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xdot/xdot_3232.hpp b/src/database/kernels/xdot/xdot_3232.hpp
new file mode 100644
index 00000000..5ed6baea
--- /dev/null
+++ b/src/database/kernels/xdot/xdot_3232.hpp
@@ -0,0 +1,136 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XdotComplexSingle = {
+ "Xdot", Precision::kComplexSingle, {"WGS1", "WGS2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xdot/xdot_64.hpp b/src/database/kernels/xdot/xdot_64.hpp
new file mode 100644
index 00000000..58a67496
--- /dev/null
+++ b/src/database/kernels/xdot/xdot_64.hpp
@@ -0,0 +1,107 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XdotDouble = {
+ "Xdot", Precision::kDouble, {"WGS1", "WGS2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 128, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xdot/xdot_6464.hpp b/src/database/kernels/xdot/xdot_6464.hpp
new file mode 100644
index 00000000..755ec390
--- /dev/null
+++ b/src/database/kernels/xdot/xdot_6464.hpp
@@ -0,0 +1,107 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xdot6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XdotComplexDouble = {
+ "Xdot", Precision::kComplexDouble, {"WGS1", "WGS2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 512, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm.hpp b/src/database/kernels/xgemm.hpp
deleted file mode 100644
index 43854afb..00000000
--- a/src/database/kernels/xgemm.hpp
+++ /dev/null
@@ -1,348 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xgemm' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmHalf = {
- "Xgemm", Precision::kHalf, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- { "default", { 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- { "default", { 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmSingle = {
- "Xgemm", Precision::kSingle, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 2, 16, 16, 64, 8, 16, 128, 0, 0, 0, 0, 2, 8 } },
- { "ATI Radeon HD 6750M", { 32, 2, 8, 16, 128, 8, 8, 128, 0, 0, 1, 1, 8, 8 } },
- { "Ellesmere", { 32, 2, 8, 8, 16, 16, 16, 64, 1, 1, 0, 0, 1, 2 } },
- { "Fiji", { 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- { "Hawaii", { 16, 2, 16, 32, 128, 32, 8, 64, 1, 1, 1, 1, 4, 2 } },
- { "Oland", { 16, 2, 32, 16, 64, 32, 16, 128, 1, 1, 1, 0, 2, 4 } },
- { "Pitcairn", { 16, 2, 16, 8, 32, 16, 16, 128, 0, 0, 1, 0, 1, 1 } },
- { "Tahiti", { 32, 2, 16, 32, 128, 16, 8, 64, 0, 0, 0, 0, 4, 1 } },
- { "Tonga", { 16, 2, 16, 32, 64, 16, 8, 128, 1, 1, 0, 0, 2, 8 } },
- { "Turks", { 32, 2, 8, 8, 64, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
- { "default", { 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 2, 8, 8, 64, 8, 16, 16, 0, 0, 1, 1, 8, 1 } },
- { "default", { 16, 2, 8, 8, 64, 8, 16, 16, 0, 0, 1, 1, 8, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 2, 8, 8, 128, 16, 8, 128, 0, 1, 1, 1, 1, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 8, 32, 32, 64, 32, 16, 64, 1, 1, 1, 0, 2, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 2, 16, 8, 128, 16, 8, 64, 0, 0, 1, 0, 1, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 2, 32, 8, 128, 8, 8, 128, 1, 1, 1, 1, 2, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 16, 2, 8, 8, 128, 8, 8, 128, 1, 1, 1, 0, 1, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 16, 16, 64, 32, 32, 64, 0, 1, 1, 0, 1, 2 } },
- { "default", { 32, 2, 8, 8, 32, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 32, 2, 8, 8, 128, 32, 16, 64, 0, 0, 1, 0, 4, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 32, 8, 8, 8, 64, 32, 16, 64, 1, 1, 1, 1, 4, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 16, 2, 16, 8, 32, 8, 16, 128, 1, 1, 1, 1, 2, 4 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 32, 2, 16, 16, 64, 16, 8, 64, 1, 1, 1, 0, 2, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
- { "Iris", { 16, 8, 16, 8, 128, 32, 16, 64, 1, 1, 1, 1, 4, 1 } },
- { "Iris Pro", { 16, 2, 16, 8, 64, 32, 32, 128, 1, 1, 1, 0, 4, 4 } },
- { "default", { 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } },
- { "default", { 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 2, 16, 8, 32, 8, 16, 64, 1, 1, 1, 1, 2, 4 } },
- { "GeForce GT 650M", { 32, 2, 8, 8, 32, 32, 32, 64, 1, 1, 0, 0, 4, 2 } },
- { "GeForce GTX 1070", { 16, 2, 32, 16, 128, 32, 8, 128, 1, 1, 1, 0, 4, 1 } },
- { "GeForce GTX 1080", { 32, 2, 16, 8, 64, 8, 8, 64, 1, 1, 1, 1, 4, 8 } },
- { "GeForce GTX 480", { 16, 2, 16, 8, 64, 32, 16, 64, 1, 1, 1, 1, 2, 2 } },
- { "GeForce GTX 670", { 16, 2, 8, 8, 64, 16, 16, 64, 1, 1, 1, 0, 2, 4 } },
- { "GeForce GTX 680", { 32, 8, 8, 16, 64, 32, 16, 128, 1, 1, 0, 0, 4, 2 } },
- { "GeForce GTX 750", { 16, 2, 16, 16, 64, 32, 8, 128, 1, 1, 1, 1, 1, 2 } },
- { "GeForce GTX 750 Ti", { 16, 2, 16, 16, 128, 32, 8, 64, 1, 1, 0, 1, 8, 2 } },
- { "GeForce GTX 980", { 16, 2, 16, 16, 64, 16, 8, 128, 1, 1, 1, 0, 4, 8 } },
- { "GeForce GTX TITAN", { 16, 8, 32, 16, 64, 8, 8, 64, 1, 1, 1, 0, 2, 2 } },
- { "GeForce GTX TITAN Black", { 16, 2, 16, 8, 64, 16, 16, 64, 1, 1, 1, 0, 4, 1 } },
- { "GeForce GTX TITAN X", { 16, 2, 8, 16, 128, 8, 8, 128, 1, 1, 1, 1, 4, 8 } },
- { "TITAN X (Pascal)", { 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 1 } },
- { "Tesla K20m", { 16, 2, 32, 16, 64, 16, 8, 64, 1, 1, 1, 0, 2, 4 } },
- { "Tesla K40m", { 16, 8, 16, 8, 64, 16, 16, 128, 1, 1, 1, 0, 2, 4 } },
- { "default", { 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 1 } },
- { "default", { 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmComplexSingle = {
- "Xgemm", Precision::kComplexSingle, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 2, 32, 32, 64, 8, 8, 64, 0, 0, 1, 1, 2, 8 } },
- { "ATI Radeon HD 6750M", { 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- { "Ellesmere", { 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } },
- { "Fiji", { 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
- { "Hawaii", { 32, 2, 32, 8, 32, 8, 16, 32, 1, 0, 1, 0, 1, 1 } },
- { "Oland", { 32, 2, 16, 8, 32, 32, 32, 128, 1, 0, 0, 1, 2, 4 } },
- { "Pitcairn", { 16, 2, 8, 8, 32, 8, 8, 32, 0, 1, 1, 1, 4, 2 } },
- { "Tahiti", { 16, 2, 8, 8, 32, 8, 16, 32, 1, 0, 0, 1, 2, 1 } },
- { "Tonga", { 16, 2, 32, 8, 64, 16, 32, 64, 1, 1, 1, 0, 2, 1 } },
- { "Turks", { 16, 2, 8, 8, 32, 32, 8, 32, 0, 1, 0, 0, 2, 1 } },
- { "default", { 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
- { "default", { 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 2, 32, 8, 128, 16, 16, 128, 1, 1, 0, 1, 1, 2 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 2, 32, 16, 32, 16, 16, 64, 0, 1, 1, 0, 1, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 2, 16, 16, 64, 8, 16, 64, 0, 1, 0, 0, 4, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 2, 8, 8, 128, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 2, 8, 8, 128, 32, 8, 128, 0, 0, 0, 0, 1, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 2, 8, 16, 16, 16, 16, 128, 0, 0, 1, 1, 1, 4 } },
- { "default", { 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 16, 8, 8, 16, 64, 32, 8, 32, 0, 0, 0, 0, 2, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 16, 8, 8, 8, 32, 16, 16, 64, 1, 0, 0, 0, 4, 4 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 32, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 1, 2, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 2, 16, 16, 64, 16, 16, 64, 0, 0, 0, 0, 4, 2 } },
- { "Iris", { 32, 8, 32, 16, 64, 8, 16, 64, 1, 0, 1, 0, 1, 1 } },
- { "Iris Pro", { 16, 2, 8, 8, 32, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
- { "default", { 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
- { "default", { 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 8, 32, 32, 64, 32, 16, 128, 1, 0, 1, 0, 1, 4 } },
- { "GeForce GTX 1070", { 16, 2, 16, 16, 128, 16, 16, 64, 1, 1, 1, 1, 2, 4 } },
- { "GeForce GTX 1080", { 16, 2, 32, 16, 64, 32, 8, 64, 1, 1, 0, 0, 1, 2 } },
- { "GeForce GTX 480", { 16, 2, 16, 16, 32, 32, 16, 128, 0, 1, 1, 1, 2, 2 } },
- { "GeForce GTX 670", { 16, 2, 32, 32, 64, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
- { "GeForce GTX 680", { 16, 2, 32, 16, 64, 32, 32, 128, 1, 0, 0, 0, 2, 2 } },
- { "GeForce GTX 750", { 16, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 0, 2, 2 } },
- { "GeForce GTX 750 Ti", { 16, 2, 16, 8, 32, 32, 16, 64, 1, 1, 1, 0, 1, 2 } },
- { "GeForce GTX 980", { 32, 8, 32, 32, 64, 16, 16, 64, 1, 1, 1, 0, 2, 1 } },
- { "GeForce GTX TITAN", { 16, 8, 16, 16, 64, 32, 16, 64, 1, 1, 1, 0, 1, 1 } },
- { "GeForce GTX TITAN Black", { 16, 2, 8, 16, 64, 8, 8, 32, 0, 1, 1, 0, 1, 2 } },
- { "GeForce GTX TITAN X", { 16, 2, 8, 8, 64, 8, 8, 32, 1, 0, 1, 1, 1, 4 } },
- { "TITAN X (Pascal)", { 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 4 } },
- { "Tesla K20m", { 32, 2, 8, 16, 64, 8, 16, 64, 1, 0, 0, 0, 1, 4 } },
- { "Tesla K40m", { 16, 2, 32, 32, 32, 32, 8, 64, 0, 1, 0, 0, 1, 1 } },
- { "default", { 32, 2, 8, 8, 16, 32, 32, 64, 1, 1, 0, 0, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 2, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDouble = {
- "Xgemm", Precision::kDouble, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4 } },
- { "Ellesmere", { 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 2 } },
- { "Fiji", { 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
- { "Hawaii", { 16, 8, 32, 8, 128, 8, 8, 32, 0, 1, 0, 0, 1, 4 } },
- { "Oland", { 16, 2, 8, 16, 64, 16, 8, 16, 0, 0, 1, 1, 1, 1 } },
- { "Pitcairn", { 32, 2, 32, 16, 64, 8, 16, 32, 0, 0, 0, 0, 1, 2 } },
- { "Tahiti", { 32, 2, 16, 8, 16, 8, 8, 32, 0, 0, 0, 1, 1, 4 } },
- { "Tonga", { 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
- { "default", { 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 32, 2, 8, 8, 64, 8, 8, 16, 0, 1, 1, 0, 8, 2 } },
- { "default", { 32, 2, 8, 8, 64, 8, 8, 16, 0, 1, 1, 0, 8, 2 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 2, 32, 8, 128, 16, 16, 128, 1, 1, 1, 1, 2, 8 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 2, 32, 16, 128, 16, 16, 64, 0, 1, 1, 0, 1, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 2, 32, 16, 128, 16, 16, 128, 0, 0, 1, 0, 1, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 2, 16, 8, 128, 8, 8, 64, 1, 0, 0, 1, 2, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 2, 16, 8, 128, 8, 8, 128, 1, 0, 0, 0, 2, 8 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 2, 8, 16, 128, 16, 8, 128, 0, 0, 1, 1, 1, 8 } },
- { "default", { 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 1, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 8, 8, 16, 16, 16, 16, 128, 0, 0, 1, 0, 1, 4 } },
- { "default", { 32, 8, 8, 16, 16, 16, 16, 128, 0, 0, 1, 0, 1, 4 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 2, 8, 8, 16, 8, 8, 32, 1, 0, 0, 1, 2, 2 } },
- { "GeForce GTX 1070", { 16, 2, 8, 16, 32, 8, 8, 64, 0, 0, 1, 1, 2, 8 } },
- { "GeForce GTX 1080", { 32, 2, 16, 16, 32, 16, 16, 64, 0, 0, 0, 0, 2, 4 } },
- { "GeForce GTX 480", { 16, 2, 8, 16, 32, 32, 8, 64, 1, 1, 1, 0, 1, 2 } },
- { "GeForce GTX 670", { 32, 8, 16, 32, 128, 16, 8, 32, 0, 1, 1, 0, 1, 1 } },
- { "GeForce GTX 680", { 32, 8, 8, 8, 32, 16, 32, 128, 1, 0, 0, 1, 2, 4 } },
- { "GeForce GTX 750", { 32, 8, 16, 32, 64, 16, 8, 128, 0, 0, 0, 1, 2, 1 } },
- { "GeForce GTX 750 Ti", { 32, 2, 8, 8, 32, 16, 16, 32, 0, 0, 0, 0, 4, 2 } },
- { "GeForce GTX 980", { 32, 8, 16, 8, 64, 32, 32, 128, 0, 0, 1, 0, 2, 4 } },
- { "GeForce GTX TITAN", { 16, 8, 16, 8, 32, 16, 32, 128, 1, 1, 1, 1, 2, 2 } },
- { "GeForce GTX TITAN Black", { 16, 2, 16, 8, 16, 16, 8, 16, 1, 1, 1, 0, 1, 1 } },
- { "GeForce GTX TITAN X", { 16, 8, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } },
- { "TITAN X (Pascal)", { 32, 2, 32, 32, 32, 16, 16, 32, 0, 0, 0, 0, 1, 2 } },
- { "Tesla K20m", { 16, 2, 32, 8, 32, 16, 16, 64, 1, 0, 0, 0, 1, 1 } },
- { "Tesla K40m", { 32, 2, 16, 8, 64, 16, 32, 128, 1, 0, 1, 1, 2, 4 } },
- { "default", { 32, 2, 16, 16, 32, 16, 16, 64, 0, 0, 0, 0, 2, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmComplexDouble = {
- "Xgemm", Precision::kComplexDouble, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 8, 8, 16, 32, 16, 16, 32, 0, 0, 1, 1, 2, 2 } },
- { "Ellesmere", { 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
- { "Fiji", { 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
- { "Hawaii", { 16, 2, 16, 16, 16, 16, 16, 32, 1, 0, 0, 0, 1, 2 } },
- { "Oland", { 16, 2, 16, 8, 16, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
- { "Pitcairn", { 32, 2, 16, 8, 32, 8, 32, 32, 0, 1, 1, 0, 1, 1 } },
- { "Tahiti", { 16, 2, 16, 8, 16, 8, 8, 16, 0, 0, 1, 0, 1, 1 } },
- { "Tonga", { 16, 2, 32, 16, 32, 16, 16, 16, 1, 1, 1, 1, 1, 1 } },
- { "default", { 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 16, 2, 8, 8, 64, 32, 8, 64, 0, 0, 1, 0, 8, 1 } },
- { "default", { 16, 2, 8, 8, 64, 32, 8, 64, 0, 0, 1, 0, 8, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 16, 2, 32, 8, 64, 16, 8, 128, 0, 1, 0, 1, 2, 1 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 32, 2, 16, 32, 128, 16, 16, 64, 0, 1, 0, 0, 2, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 2, 16, 32, 128, 16, 8, 32, 0, 1, 0, 0, 4, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 32, 2, 8, 8, 128, 8, 16, 128, 0, 0, 0, 1, 1, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 2, 8, 8, 128, 32, 8, 128, 0, 0, 0, 0, 1, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 32, 8, 8, 32, 32, 8, 8, 32, 0, 1, 0, 0, 1, 2 } },
- { "default", { 32, 2, 8, 8, 16, 8, 8, 32, 1, 1, 0, 0, 1, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 32, 2, 16, 16, 16, 16, 8, 32, 0, 0, 1, 0, 1, 1 } },
- { "default", { 32, 2, 16, 16, 16, 16, 8, 32, 0, 0, 1, 0, 1, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 32, 8, 16, 16, 16, 8, 16, 64, 1, 0, 1, 1, 1, 1 } },
- { "GeForce GTX 1070", { 32, 8, 32, 16, 32, 8, 8, 32, 0, 0, 0, 1, 1, 4 } },
- { "GeForce GTX 1080", { 32, 2, 16, 16, 16, 8, 8, 16, 0, 0, 0, 0, 1, 2 } },
- { "GeForce GTX 480", { 16, 2, 32, 32, 32, 32, 8, 32, 0, 0, 1, 0, 1, 1 } },
- { "GeForce GTX 670", { 32, 8, 16, 8, 16, 16, 32, 64, 1, 0, 0, 1, 1, 2 } },
- { "GeForce GTX 680", { 16, 8, 16, 8, 64, 16, 32, 32, 0, 1, 1, 0, 1, 1 } },
- { "GeForce GTX 750", { 32, 2, 8, 32, 32, 8, 8, 64, 0, 0, 1, 0, 1, 4 } },
- { "GeForce GTX 750 Ti", { 32, 2, 8, 8, 16, 8, 8, 32, 0, 0, 0, 0, 1, 1 } },
- { "GeForce GTX 980", { 16, 2, 16, 8, 32, 8, 16, 128, 0, 0, 1, 1, 2, 2 } },
- { "GeForce GTX TITAN Black", { 16, 2, 16, 16, 32, 16, 8, 32, 0, 1, 1, 1, 1, 1 } },
- { "GeForce GTX TITAN X", { 32, 8, 16, 16, 128, 16, 16, 32, 0, 0, 1, 0, 1, 1 } },
- { "TITAN X (Pascal)", { 32, 2, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } },
- { "Tesla K20m", { 32, 2, 32, 8, 32, 16, 16, 64, 0, 0, 1, 0, 1, 1 } },
- { "Tesla K40m", { 16, 8, 8, 8, 32, 32, 16, 32, 0, 0, 1, 0, 1, 1 } },
- { "default", { 32, 2, 16, 16, 32, 16, 16, 32, 0, 0, 0, 0, 1, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 2, 32, 32, 32, 8, 8, 32, 1, 1, 0, 0, 1, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xgemm/xgemm.hpp b/src/database/kernels/xgemm/xgemm.hpp
new file mode 100644
index 00000000..d5d382f0
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xgemm/xgemm_16.hpp"
+#include "database/kernels/xgemm/xgemm_32.hpp"
+#include "database/kernels/xgemm/xgemm_3232.hpp"
+#include "database/kernels/xgemm/xgemm_64.hpp"
+#include "database/kernels/xgemm/xgemm_6464.hpp"
diff --git a/src/database/kernels/xgemm/xgemm_16.hpp b/src/database/kernels/xgemm/xgemm_16.hpp
new file mode 100644
index 00000000..32562415
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm_16.hpp
@@ -0,0 +1,45 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmHalf = {
+ "Xgemm", Precision::kHalf, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp
new file mode 100644
index 00000000..26428c2f
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm_32.hpp
@@ -0,0 +1,162 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmSingle = {
+ "Xgemm", Precision::kSingle, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 2, 8, 8, 16, 16, 16, 64, 1, 1, 0, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 16, 16, 16, 64, 1, 1, 0, 0, 1, 2 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 2, 16, 16, 64, 8, 16, 128, 0, 0, 0, 0, 2, 8 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 2, 2 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 16, 2, 16, 32, 128, 32, 8, 64, 1, 1, 1, 1, 4, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 32, 128, 32, 8, 64, 1, 1, 1, 1, 4, 2 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 16, 2, 32, 16, 64, 32, 16, 128, 1, 1, 1, 0, 2, 4 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 16, 64, 32, 16, 128, 1, 1, 1, 0, 2, 4 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 16, 2, 16, 8, 32, 16, 16, 128, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 8, 32, 16, 16, 128, 0, 0, 1, 0, 1, 1 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 2, 16, 32, 128, 16, 8, 64, 0, 0, 0, 0, 4, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 32, 128, 16, 8, 64, 0, 0, 0, 0, 4, 1 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 2, 16, 32, 64, 16, 8, 128, 1, 1, 0, 0, 2, 8 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 32, 64, 16, 8, 128, 1, 1, 0, 0, 2, 8 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 32, 2, 8, 8, 64, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 32, 2, 8, 16, 128, 8, 8, 128, 0, 0, 1, 1, 8, 8 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 16, 128, 8, 8, 128, 0, 0, 1, 1, 8, 8 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 2, 8, 8, 64, 8, 16, 16, 0, 0, 1, 1, 8, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 8, 64, 8, 16, 16, 0, 0, 1, 1, 8, 1 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 2, 8, 8, 128, 16, 8, 128, 0, 1, 1, 1, 1, 8 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 8, 32, 32, 64, 32, 16, 64, 1, 1, 1, 0, 2, 2 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 2, 16, 8, 128, 16, 8, 64, 0, 0, 1, 0, 1, 2 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 2, 32, 8, 128, 8, 8, 128, 1, 1, 1, 1, 2, 8 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 16, 2, 8, 8, 128, 8, 8, 128, 1, 1, 1, 0, 1, 8 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 16, 16, 64, 32, 32, 64, 0, 1, 1, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 32, 2, 8, 8, 128, 32, 16, 64, 0, 0, 1, 0, 4, 2 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 32, 8, 8, 8, 64, 32, 16, 64, 1, 1, 1, 1, 4, 2 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 16, 2, 16, 8, 32, 8, 16, 128, 1, 1, 1, 1, 2, 4 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 2, 16, 16, 64, 16, 8, 64, 1, 1, 1, 0, 2, 4 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
+ { Name{"Iris "}, Params{ 16, 8, 16, 8, 128, 32, 16, 64, 1, 1, 1, 1, 4, 1 } },
+ { Name{"Iris Pro "}, Params{ 16, 2, 16, 8, 64, 32, 32, 128, 1, 1, 1, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 2, 16, 8, 64, 32, 16, 64, 1, 1, 1, 1, 2, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 8, 64, 32, 16, 64, 1, 1, 1, 1, 2, 2 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 2, 16, 8, 32, 8, 16, 64, 1, 1, 1, 1, 2, 4 } },
+ { Name{"GeForce GT 650M "}, Params{ 32, 2, 8, 8, 32, 32, 32, 64, 1, 1, 0, 0, 4, 2 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 2, 8, 8, 64, 16, 16, 64, 1, 1, 1, 0, 2, 4 } },
+ { Name{"GeForce GTX 680 "}, Params{ 32, 8, 8, 16, 64, 32, 16, 128, 1, 1, 0, 0, 4, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 4 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 8, 32, 16, 64, 8, 8, 64, 1, 1, 1, 0, 2, 2 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 2, 16, 8, 64, 16, 16, 64, 1, 1, 1, 0, 4, 1 } },
+ { Name{"Tesla K20m "}, Params{ 16, 2, 32, 16, 64, 16, 8, 64, 1, 1, 1, 0, 2, 4 } },
+ { Name{"Tesla K40m "}, Params{ 16, 8, 16, 8, 64, 16, 16, 128, 1, 1, 1, 0, 2, 4 } },
+ { kDeviceNameDefault , Params{ 16, 8, 32, 16, 64, 32, 16, 64, 1, 0, 1, 0, 2, 2 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 2, 16, 16, 64, 32, 8, 128, 1, 1, 1, 1, 1, 2 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 2, 16, 16, 128, 32, 8, 64, 1, 1, 0, 1, 8, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 32, 32, 64, 0, 0, 0, 0, 2, 1 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 2, 16, 16, 64, 16, 8, 128, 1, 1, 1, 0, 4, 8 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 2, 8, 16, 128, 8, 8, 128, 1, 1, 1, 1, 4, 8 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 16, 128, 16, 8, 128, 1, 1, 1, 0, 4, 8 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 2, 32, 16, 128, 32, 8, 128, 1, 1, 1, 0, 4, 1 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 2, 16, 8, 64, 8, 8, 64, 1, 1, 1, 1, 4, 8 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 1 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 2 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 1 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 2 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm/xgemm_3232.hpp b/src/database/kernels/xgemm/xgemm_3232.hpp
new file mode 100644
index 00000000..9b713f36
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm_3232.hpp
@@ -0,0 +1,153 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmComplexSingle = {
+ "Xgemm", Precision::kComplexSingle, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 2, 32, 32, 64, 8, 8, 64, 0, 0, 1, 1, 2, 8 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 16, 32, 32, 32, 1, 1, 0, 0, 1, 1 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 2, 32, 8, 32, 8, 16, 32, 1, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 32, 8, 32, 8, 16, 32, 1, 0, 1, 0, 1, 1 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 32, 2, 16, 8, 32, 32, 32, 128, 1, 0, 0, 1, 2, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 8, 32, 32, 32, 128, 1, 0, 0, 1, 2, 4 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 16, 2, 8, 8, 32, 8, 8, 32, 0, 1, 1, 1, 4, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 8, 32, 8, 8, 32, 0, 1, 1, 1, 4, 2 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 16, 2, 8, 8, 32, 8, 16, 32, 1, 0, 0, 1, 2, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 8, 32, 8, 16, 32, 1, 0, 0, 1, 2, 1 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 2, 32, 8, 64, 16, 32, 64, 1, 1, 1, 0, 2, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 8, 64, 16, 32, 64, 1, 1, 1, 0, 2, 1 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 16, 2, 8, 8, 32, 32, 8, 32, 0, 1, 0, 0, 2, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 8, 32, 32, 8, 32, 0, 1, 0, 0, 2, 1 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 2, 32, 8, 128, 16, 16, 128, 1, 1, 0, 1, 1, 2 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 2, 32, 16, 32, 16, 16, 64, 0, 1, 1, 0, 1, 2 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 2, 16, 16, 64, 8, 16, 64, 0, 1, 0, 0, 4, 4 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 2, 8, 8, 128, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 2, 8, 8, 128, 32, 8, 128, 0, 0, 0, 0, 1, 4 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 2, 8, 16, 16, 16, 16, 128, 0, 0, 1, 1, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 2 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 16, 8, 8, 16, 64, 32, 8, 32, 0, 0, 0, 0, 2, 1 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 16, 8, 8, 8, 32, 16, 16, 64, 1, 0, 0, 0, 4, 4 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 1, 2, 1 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 2, 16, 16, 64, 16, 16, 64, 0, 0, 0, 0, 4, 2 } },
+ { Name{"Iris "}, Params{ 32, 8, 32, 16, 64, 8, 16, 64, 1, 0, 1, 0, 1, 1 } },
+ { Name{"Iris Pro "}, Params{ 16, 2, 8, 8, 32, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 2 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 2, 16, 16, 32, 32, 16, 128, 0, 1, 1, 1, 2, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 16, 32, 32, 16, 128, 0, 1, 1, 1, 2, 2 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 8, 32, 32, 64, 32, 16, 128, 1, 0, 1, 0, 1, 4 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 2, 32, 32, 64, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 2, 32, 16, 64, 32, 32, 128, 1, 0, 0, 0, 2, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 16, 64, 32, 16, 128, 1, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 8, 16, 16, 64, 32, 16, 64, 1, 1, 1, 0, 1, 1 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 2, 8, 16, 64, 8, 8, 32, 0, 1, 1, 0, 1, 2 } },
+ { Name{"Tesla K20m "}, Params{ 32, 2, 8, 16, 64, 8, 16, 64, 1, 0, 0, 0, 1, 4 } },
+ { Name{"Tesla K40m "}, Params{ 16, 2, 32, 32, 32, 32, 8, 64, 0, 1, 0, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 128, 8, 8, 64, 0, 1, 0, 1, 8, 2 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 16, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 0, 2, 2 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 2, 16, 8, 32, 32, 16, 64, 1, 1, 1, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 16, 32, 16, 16, 64, 1, 1, 1, 0, 1, 2 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 32, 8, 32, 32, 64, 16, 16, 64, 1, 1, 1, 0, 2, 1 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 2, 8, 8, 64, 8, 8, 32, 1, 0, 1, 1, 1, 4 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 32, 64, 16, 16, 32, 1, 0, 1, 0, 1, 1 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 2, 16, 16, 128, 16, 16, 64, 1, 1, 1, 1, 2, 4 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 16, 2, 32, 16, 64, 32, 8, 64, 1, 1, 0, 0, 1, 2 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 4 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 16, 32, 32, 64, 1, 1, 0, 0, 1, 1 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 2, 1 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm/xgemm_64.hpp b/src/database/kernels/xgemm/xgemm_64.hpp
new file mode 100644
index 00000000..cfb78deb
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm_64.hpp
@@ -0,0 +1,131 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDouble = {
+ "Xgemm", Precision::kDouble, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 2 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 16, 32, 32, 32, 1, 1, 0, 0, 1, 1 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 16, 8, 32, 8, 128, 8, 8, 32, 0, 1, 0, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 16, 8, 32, 8, 128, 8, 8, 32, 0, 1, 0, 0, 1, 4 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 16, 2, 8, 16, 64, 16, 8, 16, 0, 0, 1, 1, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 16, 64, 16, 8, 16, 0, 0, 1, 1, 1, 1 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 32, 2, 32, 16, 64, 8, 16, 32, 0, 0, 0, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 32, 16, 64, 8, 16, 32, 0, 0, 0, 0, 1, 2 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 2, 16, 8, 16, 8, 8, 32, 0, 0, 0, 1, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 8, 16, 8, 8, 32, 0, 0, 0, 1, 1, 4 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 32, 2, 8, 8, 64, 8, 8, 16, 0, 1, 1, 0, 8, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 64, 8, 8, 16, 0, 1, 1, 0, 8, 2 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 2, 32, 8, 128, 16, 16, 128, 1, 1, 1, 1, 2, 8 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 2, 32, 16, 128, 16, 16, 64, 0, 1, 1, 0, 1, 2 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 2, 32, 16, 128, 16, 16, 128, 0, 0, 1, 0, 1, 2 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 2, 16, 8, 128, 8, 8, 64, 1, 0, 0, 1, 2, 8 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 2, 16, 8, 128, 8, 8, 128, 1, 0, 0, 0, 2, 8 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 2, 8, 16, 128, 16, 8, 128, 0, 0, 1, 1, 1, 8 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 1, 4 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 8, 16, 16, 16, 16, 128, 0, 0, 1, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 32, 8, 8, 16, 16, 16, 16, 128, 0, 0, 1, 0, 1, 4 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 2, 8, 16, 32, 32, 8, 64, 1, 1, 1, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 16, 32, 32, 8, 64, 1, 1, 1, 0, 1, 2 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 2, 8, 8, 16, 8, 8, 32, 1, 0, 0, 1, 2, 2 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 8, 16, 32, 128, 16, 8, 32, 0, 1, 1, 0, 1, 1 } },
+ { Name{"GeForce GTX 680 "}, Params{ 32, 8, 8, 8, 32, 16, 32, 128, 1, 0, 0, 1, 2, 4 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 32, 128, 16, 32, 128, 0, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 8, 16, 8, 32, 16, 32, 128, 1, 1, 1, 1, 2, 2 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 2, 16, 8, 16, 16, 8, 16, 1, 1, 1, 0, 1, 1 } },
+ { Name{"Tesla K20m "}, Params{ 16, 2, 32, 8, 32, 16, 16, 64, 1, 0, 0, 0, 1, 1 } },
+ { Name{"Tesla K40m "}, Params{ 32, 2, 16, 8, 64, 16, 32, 128, 1, 0, 1, 1, 2, 4 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 8, 16, 16, 16, 128, 1, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 8, 16, 32, 64, 16, 8, 128, 0, 0, 0, 1, 2, 1 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 2, 8, 8, 32, 16, 16, 32, 0, 0, 0, 0, 4, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 32, 32, 16, 16, 128, 0, 0, 0, 0, 2, 1 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 32, 8, 16, 8, 64, 32, 32, 128, 0, 0, 1, 0, 2, 4 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 16, 8, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 8, 16, 16, 16, 16, 16, 128, 0, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 2, 8, 16, 32, 8, 8, 64, 0, 0, 1, 1, 2, 8 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 2, 16, 16, 32, 16, 16, 64, 0, 0, 0, 0, 2, 4 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 32, 32, 32, 16, 16, 32, 0, 0, 0, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 64, 0, 0, 0, 0, 2, 4 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 64, 0, 0, 0, 0, 2, 4 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm/xgemm_6464.hpp b/src/database/kernels/xgemm/xgemm_6464.hpp
new file mode 100644
index 00000000..f9236718
--- /dev/null
+++ b/src/database/kernels/xgemm/xgemm_6464.hpp
@@ -0,0 +1,130 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmComplexDouble = {
+ "Xgemm", Precision::kComplexDouble, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 8, 8, 16, 32, 16, 16, 32, 0, 0, 1, 1, 2, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 4 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 16, 2, 16, 16, 16, 16, 16, 32, 1, 0, 0, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 16, 16, 16, 16, 32, 1, 0, 0, 0, 1, 2 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 16, 2, 16, 8, 16, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 8, 16, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 32, 2, 16, 8, 32, 8, 32, 32, 0, 1, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 8, 32, 8, 32, 32, 0, 1, 1, 0, 1, 1 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 16, 2, 16, 8, 16, 8, 8, 16, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 8, 16, 8, 8, 16, 0, 0, 1, 0, 1, 1 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 2, 32, 16, 32, 16, 16, 16, 1, 1, 1, 1, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 16, 32, 16, 16, 16, 1, 1, 1, 1, 1, 1 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 16, 16, 16, 16, 1, 1, 0, 0, 1, 1 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 16, 2, 8, 8, 64, 32, 8, 64, 0, 0, 1, 0, 8, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 8, 8, 64, 32, 8, 64, 0, 0, 1, 0, 8, 1 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 16, 2, 32, 8, 64, 16, 8, 128, 0, 1, 0, 1, 2, 1 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 32, 2, 16, 32, 128, 16, 16, 64, 0, 1, 0, 0, 2, 4 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 2, 16, 32, 128, 16, 8, 32, 0, 1, 0, 0, 4, 1 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 32, 2, 8, 8, 128, 8, 16, 128, 0, 0, 0, 1, 1, 8 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 2, 8, 8, 128, 32, 8, 128, 0, 0, 0, 0, 1, 4 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 32, 8, 8, 32, 32, 8, 8, 32, 0, 1, 0, 0, 1, 2 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 16, 8, 8, 32, 1, 1, 0, 0, 1, 2 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 2, 16, 16, 16, 16, 8, 32, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 16, 16, 8, 32, 0, 0, 1, 0, 1, 1 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 16, 2, 32, 32, 32, 32, 8, 32, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 32, 32, 32, 32, 8, 32, 0, 0, 1, 0, 1, 1 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 32, 8, 16, 16, 16, 8, 16, 64, 1, 0, 1, 1, 1, 1 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 8, 16, 8, 16, 16, 32, 64, 1, 0, 0, 1, 1, 2 } },
+ { Name{"GeForce GTX 680 "}, Params{ 16, 8, 16, 8, 64, 16, 32, 32, 0, 1, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 8, 16, 16, 16, 16, 16, 32, 0, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 2, 16, 16, 32, 16, 8, 32, 0, 1, 1, 1, 1, 1 } },
+ { Name{"Tesla K20m "}, Params{ 32, 2, 32, 8, 32, 16, 16, 64, 0, 0, 1, 0, 1, 1 } },
+ { Name{"Tesla K40m "}, Params{ 16, 8, 8, 8, 32, 32, 16, 32, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 8, 32, 16, 16, 64, 0, 0, 0, 0, 4, 1 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 2, 8, 32, 32, 8, 8, 64, 0, 0, 1, 0, 1, 4 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 2, 8, 8, 16, 8, 8, 32, 0, 0, 0, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 8, 32, 16, 8, 8, 32, 0, 0, 0, 0, 1, 1 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 16, 2, 16, 8, 32, 8, 16, 128, 0, 0, 1, 1, 2, 2 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 32, 8, 16, 16, 128, 16, 16, 32, 0, 0, 1, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 16, 2, 16, 16, 128, 16, 16, 128, 0, 0, 1, 0, 1, 1 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 32, 8, 32, 16, 32, 8, 8, 32, 0, 0, 0, 1, 1, 4 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 2, 16, 16, 16, 8, 8, 16, 0, 0, 0, 0, 1, 2 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } },
+ { kDeviceNameDefault , Params{ 32, 2, 32, 32, 32, 32, 32, 64, 0, 0, 0, 0, 1, 2 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 16, 16, 32, 16, 16, 32, 0, 0, 0, 0, 1, 1 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 2, 32, 32, 32, 8, 8, 32, 1, 1, 0, 0, 1, 1 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct.hpp b/src/database/kernels/xgemm_direct.hpp
deleted file mode 100644
index acace63f..00000000
--- a/src/database/kernels/xgemm_direct.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDirectHalf = {
- "XgemmDirect", Precision::kHalf, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 8, 32, 8, 8, 32, 1, 1, 1, 1, 32 } },
- { "default", { 8, 32, 8, 8, 32, 1, 1, 1, 1, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDirectSingle = {
- "XgemmDirect", Precision::kSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 8, 8, 8, 8, 1, 1, 2, 2, 32 } },
- { "ATI Radeon HD 6750M", { 8, 8, 16, 8, 8, 1, 0, 2, 2, 32 } },
- { "Ellesmere", { 2, 8, 8, 32, 32, 1, 1, 2, 1, 32 } },
- { "Fiji", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- { "Tonga", { 16, 16, 16, 32, 8, 0, 1, 1, 1, 32 } },
- { "Turks", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 16 } },
- { "default", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 8, 8, 8, 8, 0, 0, 1, 8, 64 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 16, 16, 8, 8, 8, 0, 0, 2, 4, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 8, 8, 8, 8, 0, 0, 2, 2, 64 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 4, 2, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- { "Iris Pro", { 2, 16, 16, 8, 8, 1, 1, 2, 4, 32 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GT 650M", { 16, 16, 16, 8, 16, 1, 0, 2, 2, 32 } },
- { "GeForce GTX 1080", { 16, 16, 8, 16, 8, 1, 1, 1, 1, 32 } },
- { "GeForce GTX 750 Ti", { 2, 8, 8, 8, 8, 1, 1, 4, 2, 32 } },
- { "GeForce GTX TITAN Black", { 2, 8, 8, 16, 16, 1, 1, 4, 2, 32 } },
- { "TITAN X (Pascal)", { 8, 32, 8, 8, 16, 1, 1, 1, 1, 32 } },
- { "default", { 2, 8, 8, 16, 16, 1, 1, 4, 2, 32 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 2, 8, 8, 8, 8, 1, 1, 2, 1, 16 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 2, 1, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 2, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDirectComplexSingle = {
- "XgemmDirect", Precision::kComplexSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "ATI Radeon HD 6750M", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- { "Fiji", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "Tonga", { 2, 16, 16, 16, 16, 1, 1, 2, 2, 32 } },
- { "Turks", { 2, 8, 8, 8, 8, 1, 1, 2, 2, 16 } },
- { "default", { 2, 16, 16, 16, 16, 1, 1, 2, 2, 32 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 8, 8, 8, 8, 0, 0, 4, 4, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 2, 16, 16, 8, 8, 1, 1, 1, 4, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 8, 8, 16, 8, 1, 1, 2, 1, 32 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 4, 4, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "Iris Pro", { 2, 16, 16, 8, 8, 1, 1, 2, 2, 32 } },
- { "default", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GTX 1080", { 8, 8, 16, 16, 8, 1, 1, 2, 2, 32 } },
- { "GeForce GTX 750 Ti", { 16, 8, 8, 16, 8, 1, 1, 2, 1, 16 } },
- { "GeForce GTX TITAN Black", { 2, 8, 8, 16, 16, 1, 1, 1, 1, 16 } },
- { "TITAN X (Pascal)", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 2, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 32, 32, 8, 8, 1, 1, 1, 1, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDirectDouble = {
- "XgemmDirect", Precision::kDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- { "Ellesmere", { 8, 16, 16, 8, 16, 1, 1, 2, 1, 32 } },
- { "Fiji", { 16, 8, 8, 8, 16, 1, 1, 1, 1, 16 } },
- { "Tonga", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 32 } },
- { "default", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 8, 8, 8, 8, 1, 1, 4, 4, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 8, 8, 8, 8, 0, 0, 1, 4, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 8, 8, 8, 8, 1, 1, 4, 4, 32 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 4, 2, 32 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GTX 1080", { 2, 16, 16, 8, 8, 1, 1, 1, 2, 16 } },
- { "GeForce GTX 750 Ti", { 2, 8, 8, 8, 8, 1, 1, 2, 4, 32 } },
- { "GeForce GTX TITAN Black", { 8, 16, 16, 16, 8, 1, 0, 1, 1, 16 } },
- { "TITAN X (Pascal)", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 16 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 2, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 8, 8, 8, 8, 1, 1, 2, 2, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemmDirectComplexDouble = {
- "XgemmDirect", Precision::kComplexDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "Ellesmere", { 16, 32, 32, 16, 8, 0, 0, 1, 1, 32 } },
- { "Fiji", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "Tonga", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- { "default", { 2, 16, 16, 16, 16, 1, 1, 1, 1, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 8, 8, 32, 8, 0, 0, 1, 1, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 16, 16, 8, 8, 0, 0, 2, 1, 32 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 8, 16, 8, 8, 8, 0, 0, 2, 2, 32 } },
- { "default", { 2, 8, 8, 8, 8, 1, 1, 2, 2, 16 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GTX 1080", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- { "GeForce GTX 750 Ti", { 2, 32, 32, 8, 8, 1, 1, 1, 1, 32 } },
- { "GeForce GTX TITAN Black", { 2, 8, 8, 8, 8, 1, 1, 1, 1, 8 } },
- { "TITAN X (Pascal)", { 2, 16, 16, 8, 8, 1, 1, 1, 2, 16 } },
- { "default", { 2, 16, 16, 8, 8, 1, 1, 1, 1, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 2, 8, 8, 8, 8, 1, 1, 1, 2, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct.hpp b/src/database/kernels/xgemm_direct/xgemm_direct.hpp
new file mode 100644
index 00000000..9a26e7ce
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xgemm_direct/xgemm_direct_16.hpp"
+#include "database/kernels/xgemm_direct/xgemm_direct_32.hpp"
+#include "database/kernels/xgemm_direct/xgemm_direct_3232.hpp"
+#include "database/kernels/xgemm_direct/xgemm_direct_64.hpp"
+#include "database/kernels/xgemm_direct/xgemm_direct_6464.hpp"
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp
new file mode 100644
index 00000000..49051b7f
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp
@@ -0,0 +1,45 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDirectHalf = {
+ "XgemmDirect", Precision::kHalf, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 32, 8, 8, 32, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 8, 8, 32, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 8, 8, 32, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp
new file mode 100644
index 00000000..8fe7b97a
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp
@@ -0,0 +1,105 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDirectSingle = {
+ "XgemmDirect", Precision::kSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 2, 8, 8, 32, 32, 1, 1, 2, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 32, 32, 1, 1, 2, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 16, 16, 32, 8, 0, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 16, 32, 8, 0, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 8, 16, 8, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 8, 16, 8, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 8, 8, 8, 8, 0, 0, 1, 8, 64, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 16, 16, 8, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 8, 8, 8, 8, 0, 0, 2, 2, 64, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.0", {
+ { Name{"GeForce GT 650M "}, Params{ 16, 16, 16, 8, 16, 1, 0, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 16, 8, 16, 1, 0, 2, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 16, 16, 8, 16, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 32, 8, 8, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp
new file mode 100644
index 00000000..592f95c2
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp
@@ -0,0 +1,89 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDirectComplexSingle = {
+ "XgemmDirect", Precision::kComplexSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 8, 8, 8, 8, 0, 0, 4, 4, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 4, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 8, 8, 16, 8, 1, 1, 2, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 4, 4, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 16, 8, 8, 16, 8, 1, 1, 2, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 8, 16, 8, 1, 1, 2, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 8, 16, 16, 8, 1, 1, 2, 2, 32, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 32, 32, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp
new file mode 100644
index 00000000..ea2acde6
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp
@@ -0,0 +1,76 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDirectDouble = {
+ "XgemmDirect", Precision::kDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 16, 16, 8, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 16, 8, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 16, 8, 8, 8, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 8, 8, 8, 8, 1, 1, 4, 4, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 8, 8, 8, 8, 0, 0, 1, 4, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 8, 8, 8, 8, 1, 1, 4, 4, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 8, 16, 16, 16, 8, 1, 0, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 16, 16, 8, 1, 0, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp
new file mode 100644
index 00000000..b8bc380b
--- /dev/null
+++ b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp
@@ -0,0 +1,76 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemmDirectComplexDouble = {
+ "XgemmDirect", Precision::kComplexDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 32, 32, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 32, 32, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 8, 8, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 16, 16, 8, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 8, 16, 8, 8, 8, 0, 0, 2, 2, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN Black "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 2, 32, 32, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 32, 32, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv.hpp b/src/database/kernels/xgemv.hpp
deleted file mode 100644
index c537294a..00000000
--- a/src/database/kernels/xgemv.hpp
+++ /dev/null
@@ -1,306 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xgemv' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvHalf = {
- "Xgemv", Precision::kHalf, {"WGS1", "WPT1"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 256, 1 } },
- { "default", { 256, 1 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 64, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 256, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvSingle = {
- "Xgemv", Precision::kSingle, {"WGS1", "WPT1"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 128, 1 } },
- { "ATI Radeon HD 6750M", { 32, 1 } },
- { "Ellesmere", { 256, 1 } },
- { "Fiji", { 128, 1 } },
- { "Hawaii", { 128, 1 } },
- { "Oland", { 128, 1 } },
- { "Pitcairn", { 256, 1 } },
- { "Tahiti", { 256, 1 } },
- { "Tonga", { 128, 2 } },
- { "Turks", { 32, 1 } },
- { "default", { 128, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 128, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 64, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 32, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 64, 4 } },
- { "default", { 64, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 256, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 64, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 64, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 256, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 1 } },
- { "Iris", { 64, 2 } },
- { "Iris Pro", { 128, 1 } },
- { "default", { 128, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 256, 1 } },
- { "GeForce GT 650M", { 256, 1 } },
- { "GeForce GTX 1070", { 128, 1 } },
- { "GeForce GTX 1080", { 32, 1 } },
- { "GeForce GTX 480", { 64, 1 } },
- { "GeForce GTX 670", { 64, 1 } },
- { "GeForce GTX 680", { 256, 1 } },
- { "GeForce GTX 750", { 256, 1 } },
- { "GeForce GTX 750 Ti", { 32, 1 } },
- { "GeForce GTX 980", { 128, 1 } },
- { "GeForce GTX TITAN", { 256, 1 } },
- { "GeForce GTX TITAN Black", { 256, 1 } },
- { "GeForce GTX TITAN X", { 256, 1 } },
- { "TITAN X (Pascal)", { 32, 1 } },
- { "Tesla K20m", { 128, 1 } },
- { "Tesla K40m", { 256, 1 } },
- { "default", { 256, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvComplexSingle = {
- "Xgemv", Precision::kComplexSingle, {"WGS1", "WPT1"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 1 } },
- { "ATI Radeon HD 6750M", { 64, 1 } },
- { "Ellesmere", { 32, 1 } },
- { "Fiji", { 32, 1 } },
- { "Hawaii", { 64, 1 } },
- { "Oland", { 64, 1 } },
- { "Pitcairn", { 64, 1 } },
- { "Tahiti", { 64, 1 } },
- { "Tonga", { 32, 1 } },
- { "Turks", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 128, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 128, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 64, 4 } },
- { "default", { 64, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 64, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 64, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 128, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 256, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 64, 1 } },
- { "Iris", { 256, 1 } },
- { "Iris Pro", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 256, 1 } },
- { "GeForce GTX 1070", { 64, 1 } },
- { "GeForce GTX 1080", { 32, 1 } },
- { "GeForce GTX 480", { 64, 1 } },
- { "GeForce GTX 670", { 64, 1 } },
- { "GeForce GTX 680", { 64, 1 } },
- { "GeForce GTX 750", { 128, 1 } },
- { "GeForce GTX 750 Ti", { 32, 1 } },
- { "GeForce GTX TITAN", { 256, 1 } },
- { "GeForce GTX TITAN Black", { 32, 1 } },
- { "TITAN X (Pascal)", { 32, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvDouble = {
- "Xgemv", Precision::kDouble, {"WGS1", "WPT1"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 1 } },
- { "Ellesmere", { 32, 1 } },
- { "Fiji", { 32, 1 } },
- { "Hawaii", { 128, 1 } },
- { "Oland", { 256, 1 } },
- { "Pitcairn", { 256, 1 } },
- { "Tahiti", { 256, 1 } },
- { "Tonga", { 32, 1 } },
- { "default", { 256, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 64, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 128, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 64, 4 } },
- { "default", { 64, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 1 } },
- { "GeForce GTX 1070", { 64, 1 } },
- { "GeForce GTX 1080", { 32, 1 } },
- { "GeForce GTX 480", { 256, 1 } },
- { "GeForce GTX 670", { 128, 1 } },
- { "GeForce GTX 680", { 128, 1 } },
- { "GeForce GTX 750", { 64, 1 } },
- { "GeForce GTX 750 Ti", { 32, 1 } },
- { "GeForce GTX 980", { 64, 1 } },
- { "GeForce GTX TITAN", { 256, 1 } },
- { "GeForce GTX TITAN Black", { 32, 1 } },
- { "GeForce GTX TITAN X", { 64, 1 } },
- { "TITAN X (Pascal)", { 32, 1 } },
- { "Tesla K20m", { 256, 1 } },
- { "Tesla K40m", { 256, 1 } },
- { "default", { 128, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvComplexDouble = {
- "Xgemv", Precision::kComplexDouble, {"WGS1", "WPT1"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 1 } },
- { "Ellesmere", { 32, 1 } },
- { "Fiji", { 64, 1 } },
- { "Hawaii", { 64, 1 } },
- { "Oland", { 256, 1 } },
- { "Pitcairn", { 256, 1 } },
- { "Tahiti", { 256, 1 } },
- { "Tonga", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 64, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 128, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 32, 4 } },
- { "default", { 64, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 64, 1 } },
- { "default", { 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 1 } },
- { "GeForce GTX 480", { 64, 1 } },
- { "GeForce GTX 670", { 128, 1 } },
- { "default", { 128, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xgemv/xgemv.hpp b/src/database/kernels/xgemv/xgemv.hpp
new file mode 100644
index 00000000..081c995f
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xgemv/xgemv_16.hpp"
+#include "database/kernels/xgemv/xgemv_32.hpp"
+#include "database/kernels/xgemv/xgemv_3232.hpp"
+#include "database/kernels/xgemv/xgemv_64.hpp"
+#include "database/kernels/xgemv/xgemv_6464.hpp"
diff --git a/src/database/kernels/xgemv/xgemv_16.hpp b/src/database/kernels/xgemv/xgemv_16.hpp
new file mode 100644
index 00000000..0db7d960
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv_16.hpp
@@ -0,0 +1,46 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvHalf = {
+ "Xgemv", Precision::kHalf, {"WGS1", "WPT1"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp
new file mode 100644
index 00000000..8effec20
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv_32.hpp
@@ -0,0 +1,153 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvSingle = {
+ "Xgemv", Precision::kSingle, {"WGS1", "WPT1"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv/xgemv_3232.hpp b/src/database/kernels/xgemv/xgemv_3232.hpp
new file mode 100644
index 00000000..747cc1eb
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv_3232.hpp
@@ -0,0 +1,137 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvComplexSingle = {
+ "Xgemv", Precision::kComplexSingle, {"WGS1", "WPT1"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv/xgemv_64.hpp b/src/database/kernels/xgemv/xgemv_64.hpp
new file mode 100644
index 00000000..e7b98b64
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv_64.hpp
@@ -0,0 +1,122 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvDouble = {
+ "Xgemv", Precision::kDouble, {"WGS1", "WPT1"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv/xgemv_6464.hpp b/src/database/kernels/xgemv/xgemv_6464.hpp
new file mode 100644
index 00000000..dda5c34b
--- /dev/null
+++ b/src/database/kernels/xgemv/xgemv_6464.hpp
@@ -0,0 +1,98 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvComplexDouble = {
+ "Xgemv", Precision::kComplexDouble, {"WGS1", "WPT1"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast.hpp b/src/database/kernels/xgemv_fast.hpp
deleted file mode 100644
index c3b9103a..00000000
--- a/src/database/kernels/xgemv_fast.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastHalf = {
- "XgemvFast", Precision::kHalf, {"VW2", "WGS2", "WPT2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 1, 32, 1 } },
- { "default", { 1, 32, 1 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 1, 16, 1 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 4, 64, 4 } },
- { "default", { 1, 16, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 16, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastSingle = {
- "XgemvFast", Precision::kSingle, {"VW2", "WGS2", "WPT2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 128, 1 } },
- { "ATI Radeon HD 6750M", { 2, 64, 2 } },
- { "Ellesmere", { 1, 64, 1 } },
- { "Fiji", { 1, 64, 2 } },
- { "Hawaii", { 1, 64, 1 } },
- { "Oland", { 1, 64, 1 } },
- { "Pitcairn", { 1, 64, 1 } },
- { "Tahiti", { 1, 64, 1 } },
- { "Tonga", { 1, 16, 4 } },
- { "Turks", { 1, 256, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 1, 32, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 128, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 32, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 1, 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 16, 4 } },
- { "default", { 4, 128, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 1, 256, 1 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 2, 32, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 4, 128, 4 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 1, 64, 2 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 2, 32, 2 } },
- { "Iris", { 1, 128, 2 } },
- { "Iris Pro", { 4, 64, 4 } },
- { "default", { 2, 256, 2 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 2, 256, 2 } },
- { "GeForce GT 650M", { 2, 32, 2 } },
- { "GeForce GTX 1070", { 1, 256, 1 } },
- { "GeForce GTX 1080", { 1, 128, 1 } },
- { "GeForce GTX 480", { 1, 128, 1 } },
- { "GeForce GTX 670", { 2, 256, 2 } },
- { "GeForce GTX 680", { 1, 128, 1 } },
- { "GeForce GTX 750", { 1, 256, 1 } },
- { "GeForce GTX 750 Ti", { 2, 32, 2 } },
- { "GeForce GTX 980", { 1, 256, 1 } },
- { "GeForce GTX TITAN", { 1, 256, 1 } },
- { "GeForce GTX TITAN Black", { 1, 256, 1 } },
- { "GeForce GTX TITAN X", { 1, 64, 1 } },
- { "TITAN X (Pascal)", { 1, 64, 1 } },
- { "Tesla K20m", { 1, 256, 1 } },
- { "Tesla K40m", { 1, 256, 1 } },
- { "default", { 1, 256, 1 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 1, 64, 4 } },
- { "default", { 1, 64, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastComplexSingle = {
- "XgemvFast", Precision::kComplexSingle, {"VW2", "WGS2", "WPT2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 2, 256, 2 } },
- { "ATI Radeon HD 6750M", { 1, 128, 1 } },
- { "Ellesmere", { 1, 64, 1 } },
- { "Fiji", { 1, 16, 1 } },
- { "Hawaii", { 1, 64, 1 } },
- { "Oland", { 1, 64, 1 } },
- { "Pitcairn", { 1, 64, 1 } },
- { "Tahiti", { 1, 128, 1 } },
- { "Tonga", { 2, 32, 2 } },
- { "Turks", { 1, 16, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 64, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 1, 128, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 2, 128, 2 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 16, 4 } },
- { "default", { 1, 64, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 2, 128, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 1, 32, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 2, 128, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 1, 32, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 1, 32, 1 } },
- { "Iris", { 1, 64, 1 } },
- { "Iris Pro", { 4, 128, 4 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 256, 1 } },
- { "GeForce GTX 1070", { 1, 64, 1 } },
- { "GeForce GTX 480", { 1, 64, 1 } },
- { "GeForce GTX 670", { 1, 64, 1 } },
- { "GeForce GTX 680", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastDouble = {
- "XgemvFast", Precision::kDouble, {"VW2", "WGS2", "WPT2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 256, 1 } },
- { "Ellesmere", { 1, 128, 1 } },
- { "Fiji", { 1, 32, 1 } },
- { "Hawaii", { 1, 64, 1 } },
- { "Oland", { 1, 64, 1 } },
- { "Pitcairn", { 1, 64, 1 } },
- { "Tahiti", { 1, 64, 1 } },
- { "Tonga", { 2, 32, 2 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 1, 64, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 4, 128, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 1, 16, 1 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 1, 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 1, 16, 4 } },
- { "default", { 1, 64, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 256, 1 } },
- { "GeForce GTX 1070", { 1, 256, 1 } },
- { "GeForce GTX 1080", { 1, 32, 2 } },
- { "GeForce GTX 480", { 1, 64, 1 } },
- { "GeForce GTX 670", { 1, 128, 1 } },
- { "GeForce GTX 680", { 1, 128, 1 } },
- { "GeForce GTX 750", { 2, 256, 2 } },
- { "GeForce GTX 750 Ti", { 1, 32, 2 } },
- { "GeForce GTX 980", { 1, 64, 1 } },
- { "GeForce GTX TITAN", { 1, 256, 1 } },
- { "GeForce GTX TITAN Black", { 1, 256, 1 } },
- { "GeForce GTX TITAN X", { 1, 128, 1 } },
- { "TITAN X (Pascal)", { 1, 32, 1 } },
- { "Tesla K20m", { 1, 128, 1 } },
- { "Tesla K40m", { 1, 256, 1 } },
- { "default", { 1, 256, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastComplexDouble = {
- "XgemvFast", Precision::kComplexDouble, {"VW2", "WGS2", "WPT2"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 1, 256, 1 } },
- { "Ellesmere", { 1, 16, 1 } },
- { "Fiji", { 1, 16, 1 } },
- { "Hawaii", { 1, 64, 1 } },
- { "Oland", { 1, 256, 1 } },
- { "Pitcairn", { 1, 64, 1 } },
- { "Tahiti", { 1, 64, 1 } },
- { "Tonga", { 1, 32, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 32, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 2, 64, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 1, 64, 4 } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { 4, 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 1, 16, 2 } },
- { "default", { 4, 64, 4 } },
- }
- },
- { // Intel accelerators
- kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 1, 128, 1 } },
- { "GeForce GTX 480", { 1, 64, 1 } },
- { "GeForce GTX 670", { 1, 64, 1 } },
- { "default", { 1, 64, 1 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 1, 64, 1 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast.hpp b/src/database/kernels/xgemv_fast/xgemv_fast.hpp
new file mode 100644
index 00000000..5cc2ca6e
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xgemv_fast/xgemv_fast_16.hpp"
+#include "database/kernels/xgemv_fast/xgemv_fast_32.hpp"
+#include "database/kernels/xgemv_fast/xgemv_fast_3232.hpp"
+#include "database/kernels/xgemv_fast/xgemv_fast_64.hpp"
+#include "database/kernels/xgemv_fast/xgemv_fast_6464.hpp"
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp
new file mode 100644
index 00000000..cad97e20
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp
@@ -0,0 +1,46 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastHalf = {
+ "XgemvFast", Precision::kHalf, {"VW2", "WGS2", "WPT2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp
new file mode 100644
index 00000000..1c0bc49d
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp
@@ -0,0 +1,153 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastSingle = {
+ "XgemvFast", Precision::kSingle, {"VW2", "WGS2", "WPT2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 1, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp
new file mode 100644
index 00000000..754d5a17
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp
@@ -0,0 +1,125 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastComplexSingle = {
+ "XgemvFast", Precision::kComplexSingle, {"VW2", "WGS2", "WPT2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp
new file mode 100644
index 00000000..fb08a3c4
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp
@@ -0,0 +1,122 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastDouble = {
+ "XgemvFast", Precision::kDouble, {"VW2", "WGS2", "WPT2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K20m "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Tesla K40m "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.2", {
+ { Name{"GeForce GTX 980 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN X "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp
new file mode 100644
index 00000000..03725979
--- /dev/null
+++ b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp
@@ -0,0 +1,98 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastComplexDouble = {
+ "XgemvFast", Precision::kComplexDouble, {"VW2", "WGS2", "WPT2"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot.hpp b/src/database/kernels/xgemv_fast_rot.hpp
deleted file mode 100644
index 7e5905e4..00000000
--- a/src/database/kernels/xgemv_fast_rot.hpp
+++ /dev/null
@@ -1,213 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastRotHalf = {
- "XgemvFastRot", Precision::kHalf, {"VW3", "WGS3", "WPT3"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 8, 32, 32 } },
- { "default", { 8, 32, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { 8, 128, 32 } },
- { "default", { 8, 128, 32 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 128, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastRotSingle = {
- "XgemvFastRot", Precision::kSingle, {"VW3", "WGS3", "WPT3"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 8, 64, 32 } },
- { "ATI Radeon HD 6750M", { 8, 128, 16 } },
- { "Ellesmere", { 8, 32, 32 } },
- { "Fiji", { 4, 32, 16 } },
- { "Tonga", { 8, 128, 32 } },
- { "Turks", { 8, 128, 16 } },
- { "default", { 8, 32, 32 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 128, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 8, 16, 8 } },
- { "default", { 8, 32, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 8, 64, 32 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 4, 64, 16 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 2, 32, 16 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 4, 64, 16 } },
- { "Iris Pro", { 4, 16, 16 } },
- { "default", { 4, 64, 16 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GT 650M", { 8, 32, 16 } },
- { "GeForce GTX 1080", { 8, 32, 32 } },
- { "GeForce GTX 750 Ti", { 8, 32, 32 } },
- { "GeForce GTX TITAN", { 1, 16, 16 } },
- { "GeForce GTX TITAN Black", { 4, 128, 16 } },
- { "TITAN X (Pascal)", { 8, 64, 32 } },
- { "default", { 8, 32, 32 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 4, 64, 16 } },
- { "default", { 4, 64, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 8, 32, 32 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastRotComplexSingle = {
- "XgemvFastRot", Precision::kComplexSingle, {"VW3", "WGS3", "WPT3"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 8, 16, 16 } },
- { "ATI Radeon HD 6750M", { 8, 32, 8 } },
- { "Ellesmere", { 2, 32, 16 } },
- { "Fiji", { 4, 32, 32 } },
- { "Tonga", { 4, 32, 32 } },
- { "Turks", { 4, 32, 8 } },
- { "default", { 8, 16, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 32, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 4, 16, 16 } },
- { "default", { 4, 32, 32 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 2, 16, 16 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 4, 128, 8 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 4, 32, 8 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 4, 64, 16 } },
- { "Iris Pro", { 4, 16, 16 } },
- { "default", { 2, 32, 8 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 4, 16, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastRotDouble = {
- "XgemvFastRot", Precision::kDouble, {"VW3", "WGS3", "WPT3"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 16, 16 } },
- { "Ellesmere", { 4, 16, 16 } },
- { "Fiji", { 4, 32, 32 } },
- { "Tonga", { 4, 16, 16 } },
- { "default", { 4, 16, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 8, 16, 8 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 4, 32, 32 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 8, 16, 8 } },
- { "default", { 8, 32, 32 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GeForce GTX 1080", { 8, 32, 32 } },
- { "GeForce GTX 750 Ti", { 4, 32, 16 } },
- { "GeForce GTX TITAN", { 1, 16, 16 } },
- { "GeForce GTX TITAN Black", { 1, 16, 16 } },
- { "TITAN X (Pascal)", { 8, 32, 32 } },
- { "default", { 4, 32, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 4, 16, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgemvFastRotComplexDouble = {
- "XgemvFastRot", Precision::kComplexDouble, {"VW3", "WGS3", "WPT3"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 4, 32, 16 } },
- { "Ellesmere", { 4, 16, 16 } },
- { "Fiji", { 4, 32, 8 } },
- { "Tonga", { 4, 16, 8 } },
- { "default", { 8, 32, 16 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 2, 16, 16 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 4, 64, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 2, 16, 16 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 8, 16, 16 } },
- { "default", { 8, 16, 16 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 4, 16, 16 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot.hpp
new file mode 100644
index 00000000..7379eba9
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp"
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp"
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp"
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp"
+#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp"
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp
new file mode 100644
index 00000000..969df688
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp
@@ -0,0 +1,45 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastRotHalf = {
+ "XgemvFastRot", Precision::kHalf, {"VW3", "WGS3", "WPT3"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp
new file mode 100644
index 00000000..ce80a9f7
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp
@@ -0,0 +1,110 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastRotSingle = {
+ "XgemvFastRot", Precision::kSingle, {"VW3", "WGS3", "WPT3"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 8, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.0", {
+ { Name{"GeForce GT 650M "}, Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 4, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp
new file mode 100644
index 00000000..f047b91a
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp
@@ -0,0 +1,77 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastRotComplexSingle = {
+ "XgemvFastRot", Precision::kComplexSingle, {"VW3", "WGS3", "WPT3"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 4, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 8, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 4, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 2, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp
new file mode 100644
index 00000000..5f09ef95
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp
@@ -0,0 +1,78 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastRotDouble = {
+ "XgemvFastRot", Precision::kDouble, {"VW3", "WGS3", "WPT3"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 Ti "}, Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp
new file mode 100644
index 00000000..10d3ee43
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp
@@ -0,0 +1,57 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgemvFastRotComplexDouble = {
+ "XgemvFastRot", Precision::kComplexDouble, {"VW3", "WGS3", "WPT3"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 4, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 4, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xger.hpp b/src/database/kernels/xger.hpp
deleted file mode 100644
index e17396f6..00000000
--- a/src/database/kernels/xger.hpp
+++ /dev/null
@@ -1,316 +0,0 @@
-
-// =================================================================================================
-// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
-// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
-// width of 100 characters per line.
-//
-// Author(s):
-// Database generator <database.py>
-//
-// This file populates the database with best-found tuning parameters for the 'Xger' kernels.
-//
-// =================================================================================================
-
-namespace clblast {
-namespace database {
-// =================================================================================================
-
-const Database::DatabaseEntry XgerHalf = {
- "Xger", Precision::kHalf, {"WGS1", "WGS2", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "Ellesmere", { 64, 1, 2 } },
- { "default", { 64, 1, 2 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 256, 1, 2 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 64, 1, 4 } },
- { "default", { 4, 8, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 64, 4, 2 } },
- { "default", { 64, 4, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 1, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgerSingle = {
- "Xger", Precision::kSingle, {"WGS1", "WGS2", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 256, 1, 1 } },
- { "ATI Radeon HD 6750M", { 16, 16, 4 } },
- { "Ellesmere", { 64, 4, 2 } },
- { "Fiji", { 256, 1, 1 } },
- { "Hawaii", { 64, 2, 1 } },
- { "Oland", { 32, 4, 2 } },
- { "Pitcairn", { 64, 1, 1 } },
- { "Tahiti", { 256, 1, 1 } },
- { "Tonga", { 256, 1, 2 } },
- { "Turks", { 64, 4, 2 } },
- { "default", { 16, 16, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 64, 4, 4 } },
- { "default", { 64, 4, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 32, 4, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 128, 2, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 256, 16, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 256, 4, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 128, 1, 4 } },
- { "default", { 128, 8, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 32, 1, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 256, 2, 2 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 128, 1, 2 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 64, 1, 4 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 32, 4, 4 } },
- { "Iris Pro", { 64, 1, 4 } },
- { "default", { 32, 4, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 1, 2 } },
- { "GeForce GT 650M", { 32, 16, 4 } },
- { "GeForce GTX 1070", { 512, 1, 1 } },
- { "GeForce GTX 1080", { 16, 4, 1 } },
- { "GeForce GTX 480", { 256, 1, 4 } },
- { "GeForce GTX 670", { 32, 8, 2 } },
- { "GeForce GTX 680", { 128, 1, 4 } },
- { "GeForce GTX 750", { 64, 16, 4 } },
- { "GeForce GTX 750 Ti", { 64, 1, 2 } },
- { "GeForce GTX TITAN", { 32, 4, 2 } },
- { "GeForce GTX TITAN Black", { 32, 4, 2 } },
- { "TITAN X (Pascal)", { 512, 2, 1 } },
- { "default", { 128, 1, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 128, 1, 2 } },
- { "default", { 128, 1, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 32, 4, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgerComplexSingle = {
- "Xger", Precision::kComplexSingle, {"WGS1", "WGS2", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 4, 1 } },
- { "ATI Radeon HD 6750M", { 16, 16, 1 } },
- { "Ellesmere", { 16, 8, 2 } },
- { "Fiji", { 128, 2, 1 } },
- { "Hawaii", { 64, 1, 2 } },
- { "Oland", { 4, 8, 1 } },
- { "Pitcairn", { 128, 2, 1 } },
- { "Tahiti", { 64, 2, 1 } },
- { "Tonga", { 64, 1, 1 } },
- { "Turks", { 128, 2, 1 } },
- { "default", { 128, 2, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 128, 1, 1 } },
- { "default", { 128, 1, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 128, 2, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 256, 1, 4 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 256, 8, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 256, 2, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 512, 4, 2 } },
- { "default", { 256, 2, 4 } },
- }
- },
- { // Intel GPUs
- kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { 32, 1, 2 } },
- { "Intel(R) HD Graphics 5500 BroadWell U-Processor GT2", { 128, 2, 1 } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { 512, 1, 1 } },
- { "Intel(R) HD Graphics IvyBridge M GT2", { 256, 1, 2 } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { 16, 1, 1 } },
- { "Iris Pro", { 16, 2, 4 } },
- { "default", { 128, 2, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 64, 4, 2 } },
- { "GeForce GTX 1070", { 16, 64, 2 } },
- { "GeForce GTX 1080", { 32, 2, 1 } },
- { "GeForce GTX 480", { 128, 2, 2 } },
- { "GeForce GTX 670", { 16, 32, 2 } },
- { "GeForce GTX 680", { 32, 4, 2 } },
- { "GeForce GTX 750", { 32, 16, 4 } },
- { "GeForce GTX 750 Ti", { 32, 8, 2 } },
- { "GeForce GTX TITAN", { 16, 16, 2 } },
- { "GeForce GTX TITAN Black", { 16, 16, 2 } },
- { "TITAN X (Pascal)", { 32, 2, 1 } },
- { "default", { 128, 2, 2 } },
- }
- },
- { // QUALCOMM GPUs
- kDeviceTypeGPU, "QUALCOMM", {
- { "QUALCOMM Adreno(TM)", { 64, 1, 4 } },
- { "default", { 64, 1, 4 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 2, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgerDouble = {
- "Xger", Precision::kDouble, {"WGS1", "WGS2", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 32, 4, 1 } },
- { "Ellesmere", { 64, 1, 4 } },
- { "Fiji", { 256, 1, 2 } },
- { "Hawaii", { 32, 4, 2 } },
- { "Oland", { 128, 1, 2 } },
- { "Pitcairn", { 64, 1, 1 } },
- { "Tahiti", { 64, 2, 1 } },
- { "Tonga", { 8, 16, 2 } },
- { "default", { 128, 2, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 64, 4, 1 } },
- { "default", { 64, 4, 1 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 256, 1, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 512, 16, 1 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 256, 1, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 256, 4, 4 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 512, 8, 2 } },
- { "default", { 256, 1, 4 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 128, 8, 2 } },
- { "GeForce GTX 1070", { 32, 8, 1 } },
- { "GeForce GTX 1080", { 32, 2, 1 } },
- { "GeForce GTX 480", { 32, 4, 2 } },
- { "GeForce GTX 670", { 32, 32, 2 } },
- { "GeForce GTX 680", { 128, 4, 2 } },
- { "GeForce GTX 750", { 256, 2, 2 } },
- { "GeForce GTX 750 Ti", { 32, 16, 1 } },
- { "GeForce GTX TITAN", { 16, 8, 2 } },
- { "GeForce GTX TITAN Black", { 32, 4, 2 } },
- { "TITAN X (Pascal)", { 32, 2, 1 } },
- { "default", { 128, 1, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 128, 1, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-
-const Database::DatabaseEntry XgerComplexDouble = {
- "Xger", Precision::kComplexDouble, {"WGS1", "WGS2", "WPT"}, {
- { // AMD GPUs
- kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { 64, 1, 1 } },
- { "Ellesmere", { 8, 16, 1 } },
- { "Fiji", { 64, 4, 2 } },
- { "Hawaii", { 128, 1, 1 } },
- { "Oland", { 16, 16, 2 } },
- { "Pitcairn", { 64, 4, 1 } },
- { "Tahiti", { 32, 4, 1 } },
- { "Tonga", { 16, 4, 1 } },
- { "default", { 32, 4, 1 } },
- }
- },
- { // ARM GPUs
- kDeviceTypeGPU, "ARM", {
- { "Mali-T628", { 64, 2, 4 } },
- { "default", { 64, 2, 4 } },
- }
- },
- { // Intel CPUs
- kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz", { 128, 4, 4 } },
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { 512, 4, 2 } },
- { "Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz", { 256, 8, 4 } },
- { "Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz", { 512, 2, 2 } },
- { "Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz", { 256, 1, 2 } },
- { "default", { 256, 2, 2 } },
- }
- },
- { // NVIDIA GPUs
- kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { 16, 8, 2 } },
- { "GeForce GTX 1070", { 8, 128, 1 } },
- { "GeForce GTX 1080", { 8, 4, 1 } },
- { "GeForce GTX 480", { 64, 2, 2 } },
- { "GeForce GTX 670", { 8, 16, 2 } },
- { "GeForce GTX 680", { 8, 16, 1 } },
- { "GeForce GTX 750", { 8, 32, 4 } },
- { "GeForce GTX 750 Ti", { 32, 8, 2 } },
- { "GeForce GTX TITAN", { 32, 4, 2 } },
- { "GeForce GTX TITAN Black", { 16, 16, 2 } },
- { "TITAN X (Pascal)", { 4, 8, 1 } },
- { "default", { 16, 8, 2 } },
- }
- },
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { 64, 2, 2 } },
- }
- },
- }
-};
-
-// =================================================================================================
-} // namespace database
-} // namespace clblast
diff --git a/src/database/kernels/xger/xger.hpp b/src/database/kernels/xger/xger.hpp
new file mode 100644
index 00000000..284d1fc6
--- /dev/null
+++ b/src/database/kernels/xger/xger.hpp
@@ -0,0 +1,14 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger' kernels.
+//
+// =================================================================================================
+
+#include "database/kernels/xger/xger_16.hpp"
+#include "database/kernels/xger/xger_32.hpp"
+#include "database/kernels/xger/xger_3232.hpp"
+#include "database/kernels/xger/xger_64.hpp"
+#include "database/kernels/xger/xger_6464.hpp"
diff --git a/src/database/kernels/xger/xger_16.hpp b/src/database/kernels/xger/xger_16.hpp
new file mode 100644
index 00000000..8d261835
--- /dev/null
+++ b/src/database/kernels/xger/xger_16.hpp
@@ -0,0 +1,54 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger16' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgerHalf = {
+ "Xger", Precision::kHalf, {"WGS1", "WGS2", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp
new file mode 100644
index 00000000..e4e2024c
--- /dev/null
+++ b/src/database/kernels/xger/xger_32.hpp
@@ -0,0 +1,145 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger32' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgerSingle = {
+ "Xger", Precision::kSingle, {"WGS1", "WGS2", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 256, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 256, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 16, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 64, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 128, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 256, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 256, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GT 650M "}, Params{ 32, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 64, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 512, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 512, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 512, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xger/xger_3232.hpp b/src/database/kernels/xger/xger_3232.hpp
new file mode 100644
index 00000000..4b67b9da
--- /dev/null
+++ b/src/database/kernels/xger/xger_3232.hpp
@@ -0,0 +1,144 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger3232' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgerComplexSingle = {
+ "Xger", Precision::kComplexSingle, {"WGS1", "WGS2", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 4, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 4, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Turks", {
+ { Name{"AMD Radeon HD 6770M "}, Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Vancouver", {
+ { Name{"ATI Radeon HD 6750M "}, Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 128, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 256, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 256, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 512, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) HD Graphics 530 "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 512, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Iris Pro "}, Params{ 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 16, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 32, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 16, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // QUALCOMM GPUs
+ kDeviceTypeGPU, "QUALCOMM", {
+ { "default", {
+ { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xger/xger_64.hpp b/src/database/kernels/xger/xger_64.hpp
new file mode 100644
index 00000000..cea7b076
--- /dev/null
+++ b/src/database/kernels/xger/xger_64.hpp
@@ -0,0 +1,115 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger64' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgerDouble = {
+ "Xger", Precision::kDouble, {"WGS1", "WGS2", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 8, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 512, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 256, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 512, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 128, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 32, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 128, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 256, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 32, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xger/xger_6464.hpp b/src/database/kernels/xger/xger_6464.hpp
new file mode 100644
index 00000000..841c5c8e
--- /dev/null
+++ b/src/database/kernels/xger/xger_6464.hpp
@@ -0,0 +1,115 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
+// is auto-generated by the 'scripts/database/database.py' Python script.
+//
+// This file populates the database with best-found tuning parameters for the 'Xger6464' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+namespace database {
+
+const DatabaseEntry XgerComplexDouble = {
+ "Xger", Precision::kComplexDouble, {"WGS1", "WGS2", "WPT"}, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "Ellesmere", {
+ { Name{"AMD Radeon RX 480 "}, Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Fiji", {
+ { Name{"AMD Radeon R9 Fury X "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"AMD Radeon R9 M370X Compute Engine "}, Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Hawaii", {
+ { Name{"AMD Radeon R9 290X "}, Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Oland", {
+ { Name{"Oland "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Pitcairn", {
+ { Name{"AMD Radeon R9 270X "}, Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tahiti", {
+ { Name{"AMD Radeon HD 7970 "}, Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "Tonga", {
+ { Name{"AMD Radeon R9 380 "}, Params{ 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // ARM GPUs
+ kDeviceTypeGPU, "ARM", {
+ { "default", {
+ { Name{"Mali-T628 "}, Params{ 64, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "default", {
+ { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz "}, Params{ 128, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz "}, Params{ 512, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz "}, Params{ 256, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz "}, Params{ 512, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz "}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 256, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "SM2.0", {
+ { Name{"GeForce GTX 480 "}, Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.0", {
+ { Name{"GRID K520 "}, Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 670 "}, Params{ 8, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 680 "}, Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM3.5", {
+ { Name{"GeForce GTX TITAN "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX TITAN Black "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM5.0", {
+ { Name{"GeForce GTX 750 "}, Params{ 8, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 750 Ti "}, Params{ 32, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 32, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "SM6.1", {
+ { Name{"GeForce GTX 1070 "}, Params{ 8, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"GeForce GTX 1080 "}, Params{ 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { Name{"TITAN X (Pascal) "}, Params{ 4, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { kDeviceNameDefault , Params{ 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ { "default", {
+ { kDeviceNameDefault , Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", {
+ { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ } },
+ }
+ },
+ }
+};
+
+} // namespace database
+} // namespace clblast
diff --git a/src/database/kernels/xtrsv.hpp b/src/database/kernels/xtrsv.hpp
index 6633b8b7..2d6afbea 100644
--- a/src/database/kernels/xtrsv.hpp
+++ b/src/database/kernels/xtrsv.hpp
@@ -15,11 +15,11 @@ namespace clblast {
namespace database {
// =================================================================================================
-const Database::DatabaseEntry XtrsvHalf = {
+const DatabaseEntry XtrsvHalf = {
"Xtrsv", Precision::kHalf, {"TRSV_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 32 } },
+ { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -27,11 +27,11 @@ const Database::DatabaseEntry XtrsvHalf = {
// =================================================================================================
-const Database::DatabaseEntry XtrsvSingle = {
+const DatabaseEntry XtrsvSingle = {
"Xtrsv", Precision::kSingle, {"TRSV_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 32 } },
+ { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -39,11 +39,11 @@ const Database::DatabaseEntry XtrsvSingle = {
// =================================================================================================
-const Database::DatabaseEntry XtrsvComplexSingle = {
+const DatabaseEntry XtrsvComplexSingle = {
"Xtrsv", Precision::kComplexSingle, {"TRSV_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 32 } },
+ { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -51,11 +51,11 @@ const Database::DatabaseEntry XtrsvComplexSingle = {
// =================================================================================================
-const Database::DatabaseEntry XtrsvDouble = {
+const DatabaseEntry XtrsvDouble = {
"Xtrsv", Precision::kDouble, {"TRSV_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 32 } },
+ { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
@@ -63,11 +63,11 @@ const Database::DatabaseEntry XtrsvDouble = {
// =================================================================================================
-const Database::DatabaseEntry XtrsvComplexDouble = {
+const DatabaseEntry XtrsvComplexDouble = {
"Xtrsv", Precision::kComplexDouble, {"TRSV_BLOCK_SIZE"}, {
{ // Default
kDeviceTypeAll, "default", {
- { "default", { 32 } },
+ { "default", { { kDeviceNameDefault, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
}
},
}
diff --git a/src/routine.cpp b/src/routine.cpp
index 7d4ed76f..758ffa0c 100644
--- a/src/routine.cpp
+++ b/src/routine.cpp
@@ -51,7 +51,7 @@ const std::unordered_map<std::string, const std::vector<std::string>> Routine::r
// The constructor does all heavy work, errors are returned as exceptions
Routine::Routine(Queue &queue, EventPointer event, const std::string &name,
const std::vector<std::string> &kernel_names, const Precision precision,
- const std::vector<Database::DatabaseEntry> &userDatabase,
+ const std::vector<database::DatabaseEntry> &userDatabase,
std::initializer_list<const char *> source):
precision_(precision),
routine_name_(name),
@@ -67,7 +67,7 @@ Routine::Routine(Queue &queue, EventPointer event, const std::string &name,
InitProgram(source);
}
-void Routine::InitDatabase(const std::vector<Database::DatabaseEntry> &userDatabase) {
+void Routine::InitDatabase(const std::vector<database::DatabaseEntry> &userDatabase) {
for (const auto &kernel_name : kernel_names_) {
// Queries the cache to see whether or not the kernel parameter database is already there
diff --git a/src/routine.hpp b/src/routine.hpp
index 903ccdb1..5e2b4065 100644
--- a/src/routine.hpp
+++ b/src/routine.hpp
@@ -40,7 +40,7 @@ class Routine {
// and routine list, otherwise the caching logic will break.
explicit Routine(Queue &queue, EventPointer event, const std::string &name,
const std::vector<std::string> &routines, const Precision precision,
- const std::vector<Database::DatabaseEntry> &userDatabase,
+ const std::vector<database::DatabaseEntry> &userDatabase,
std::initializer_list<const char *> source);
// List of kernel-routine look-ups
@@ -59,7 +59,7 @@ class Routine {
void InitProgram(std::initializer_list<const char *> source);
// Initializes db_, fetching cached database or building one
- void InitDatabase(const std::vector<Database::DatabaseEntry> &userDatabase);
+ void InitDatabase(const std::vector<database::DatabaseEntry> &userDatabase);
protected:
diff --git a/src/tuning/tuning.hpp b/src/tuning/tuning.hpp
index 9bb5836e..1f9b6f4f 100644
--- a/src/tuning/tuning.hpp
+++ b/src/tuning/tuning.hpp
@@ -66,7 +66,11 @@ void Tuner(int argc, char* argv[]) {
auto isAMD = false;
auto isARM = false;
auto isGPU = false;
- {
+ auto device_type = std::string{};
+ auto device_vendor = std::string{};
+ auto device_architecture = std::string{};
+ auto device_name = std::string{};
+ { // In a block such that the platform and the device are destroyed before initializing the tuner
const auto platform = Platform(args.platform_id);
const auto device = Device(platform, args.device_id);
if (!PrecisionSupported<T>(device)) {
@@ -76,6 +80,10 @@ void Tuner(int argc, char* argv[]) {
isAMD = device.IsAMD();
isARM = device.IsARM();
isGPU = device.IsGPU();
+ device_type = GetDeviceType(device);
+ device_vendor = GetDeviceVendor(device);
+ device_architecture = GetDeviceArchitecture(device);
+ device_name = GetDeviceName(device);
}
// Creates input buffers with random data
@@ -159,7 +167,11 @@ void Tuner(int argc, char* argv[]) {
auto precision_string = std::to_string(static_cast<size_t>(args.precision));
auto metadata = std::vector<std::pair<std::string,std::string>>{
{"kernel_family", C::KernelFamily()},
- {"precision", precision_string}
+ {"precision", precision_string},
+ {"clblast_device_type", device_type},
+ {"clblast_device_vendor", device_vendor},
+ {"clblast_device_architecture", device_architecture},
+ {"clblast_device_name", device_name}
};
for (auto &o: C::GetOptions()) {
if (o == kArgM) { metadata.push_back({"arg_m", std::to_string(args.m)}); }
diff --git a/src/utilities/device_mapping.hpp b/src/utilities/device_mapping.hpp
new file mode 100644
index 00000000..7fdc04a0
--- /dev/null
+++ b/src/utilities/device_mapping.hpp
@@ -0,0 +1,51 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
+// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
+// width of 100 characters per line.
+//
+// Author(s):
+// Cedric Nugteren <www.cedricnugteren.nl>
+//
+// This file describes the mappings of extracted names from OpenCL (device, board, vendor, etc.) to
+// more commonly used names to match devices from different vendors and platforms properly.
+//
+// =================================================================================================
+
+#ifndef CLBLAST_UTILITIES_DEVICE_MAPPING_H_
+#define CLBLAST_UTILITIES_DEVICE_MAPPING_H_
+
+#include <string>
+#include <unordered_map>
+
+namespace clblast {
+// A special namespace to hold all the global constant variables
+namespace device_mapping {
+
+// =================================================================================================
+
+// Alternative names for some vendor names (top-level)
+const std::unordered_map<std::string, std::string> kVendorNames {
+ { "Intel(R) Corporation", "Intel" },
+ { "GenuineIntel", "Intel" },
+ { "Advanced Micro Devices, Inc.", "AMD" },
+ { "NVIDIA Corporation", "NVIDIA" },
+};
+
+// Alternative names for some architectures (mid-level)
+const std::unordered_map<std::string, std::string> kArchitectureNames {
+ {"gfx803", "Fiji"},
+ {"gfx900", "Vega"},
+};
+
+// Alternative names for some devices (low-level)
+const std::unordered_map<std::string, std::string> kDeviceNames {
+ // Empty
+};
+
+// =================================================================================================
+} // namespace device_mapping
+} // namespace clblast
+
+// CLBLAST_UTILITIES_DEVICE_MAPPING_H_
+#endif
diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp
index 0cd00438..4b8d5a09 100644
--- a/src/utilities/utilities.cpp
+++ b/src/utilities/utilities.cpp
@@ -11,8 +11,6 @@
//
// =================================================================================================
-#include "utilities/utilities.hpp"
-
#include <string>
#include <vector>
#include <chrono>
@@ -20,6 +18,10 @@
#include <iomanip>
#include <cmath>
+#include "utilities/utilities.hpp"
+
+#include "utilities/device_mapping.hpp"
+
namespace clblast {
// =================================================================================================
@@ -390,17 +392,62 @@ template <> Precision PrecisionValue<double2>() { return Precision::kComplexDoub
template <> bool PrecisionSupported<float>(const Device &) { return true; }
template <> bool PrecisionSupported<float2>(const Device &) { return true; }
template <> bool PrecisionSupported<double>(const Device &device) {
- auto extensions = device.Capabilities();
- return (extensions.find(kKhronosDoublePrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosDoublePrecision);
}
template <> bool PrecisionSupported<double2>(const Device &device) {
- auto extensions = device.Capabilities();
- return (extensions.find(kKhronosDoublePrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosDoublePrecision);
}
template <> bool PrecisionSupported<half>(const Device &device) {
- auto extensions = device.Capabilities();
if (device.Name() == "Mali-T628") { return true; } // supports fp16 but not cl_khr_fp16 officially
- return (extensions.find(kKhronosHalfPrecision) == std::string::npos) ? false : true;
+ return device.HasExtension(kKhronosHalfPrecision);
+}
+
+// =================================================================================================
+
+// High-level info
+std::string GetDeviceType(const Device& device) {
+ return device.Type();
+}
+std::string GetDeviceVendor(const Device& device) {
+ auto device_vendor = device.Vendor();
+
+ for (auto &find_and_replace : device_mapping::kVendorNames) { // replacing to common names
+ if (device_vendor == find_and_replace.first) { device_vendor = find_and_replace.second; }
+ }
+ return device_vendor;
+}
+
+// Mid-level info
+std::string GetDeviceArchitecture(const Device& device) {
+ auto device_architecture = std::string{""};
+ if (device.HasExtension(kKhronosAttributesNVIDIA)) {
+ device_architecture = device.NVIDIAComputeCapability();
+ }
+ else if (device.HasExtension(kKhronosAttributesAMD)) {
+ device_architecture = device.Name(); // Name is architecture for AMD APP and AMD ROCm
+ }
+ // Note: no else - 'device_architecture' might be the empty string
+
+ for (auto &find_and_replace : device_mapping::kArchitectureNames) { // replacing to common names
+ if (device_architecture == find_and_replace.first) { device_architecture = find_and_replace.second; }
+ }
+ return device_architecture;
+}
+
+// Lowest-level
+std::string GetDeviceName(const Device& device) {
+ auto device_name = std::string{""};
+ if (device.HasExtension(kKhronosAttributesAMD)) {
+ device_name = device.AMDBoardName();
+ }
+ else {
+ device_name = device.Name();
+ }
+
+ for (auto &find_and_replace : device_mapping::kDeviceNames) { // replacing to common names
+ if (device_name == find_and_replace.first) { device_name = find_and_replace.second; }
+ }
+ return device_name;
}
// =================================================================================================
diff --git a/src/utilities/utilities.hpp b/src/utilities/utilities.hpp
index fae69b63..e45c606c 100644
--- a/src/utilities/utilities.hpp
+++ b/src/utilities/utilities.hpp
@@ -40,6 +40,8 @@ using double2 = std::complex<double>;
// Khronos OpenCL extensions
const std::string kKhronosHalfPrecision = "cl_khr_fp16";
const std::string kKhronosDoublePrecision = "cl_khr_fp64";
+const std::string kKhronosAttributesAMD = "cl_amd_device_attribute_query";
+const std::string kKhronosAttributesNVIDIA = "cl_nv_device_attribute_query";
// Catched an unknown error
constexpr auto kUnknownError = -999;
@@ -121,6 +123,17 @@ constexpr auto kBufScalar = "Scalar";
// =================================================================================================
+#ifdef VERBOSE
+inline void log_debug(const std::string &log_string) {
+ printf("[DEBUG] %s\n", log_string.c_str());
+}
+#else
+inline void log_debug(const std::string&) { }
+#endif
+
+
+// =================================================================================================
+
// Converts a regular or complex type to it's base type (e.g. float2 to float)
template <typename T> struct BaseType { using Type = T; };
template <> struct BaseType<float2> { using Type = float; };
@@ -306,6 +319,14 @@ template <typename T>
bool PrecisionSupported(const Device &device);
// =================================================================================================
+
+// Device information in a specific CLBlast form
+std::string GetDeviceType(const Device& device);
+std::string GetDeviceVendor(const Device& device);
+std::string GetDeviceArchitecture(const Device& device);
+std::string GetDeviceName(const Device& device);
+
+// =================================================================================================
} // namespace clblast
// CLBLAST_UTILITIES_H_