Split the database into multiple small compilation units
parent
4a2fc4aa98
commit
1e738db6dd
|
@ -5,6 +5,7 @@ Development (next version)
|
||||||
- Added OpenCL pre-processor to unroll loops and perform array-to-register promotions for compilers
|
- Added OpenCL pre-processor to unroll loops and perform array-to-register promotions for compilers
|
||||||
which don't do this themselves (ARM Mali) - greatly improves performance on these platforms
|
which don't do this themselves (ARM Mali) - greatly improves performance on these platforms
|
||||||
- Added first tuners for the TRSV (block size) and TRSM (invert kernel) routines
|
- Added first tuners for the TRSV (block size) and TRSM (invert kernel) routines
|
||||||
|
- Improved compilation time by splitting the tuning database into multiple compilation units
|
||||||
- Various minor fixes and enhancements
|
- Various minor fixes and enhancements
|
||||||
- Added tuned parameters for various devices (see README)
|
- Added tuned parameters for various devices (see README)
|
||||||
|
|
||||||
|
|
|
@ -285,6 +285,7 @@ foreach(ROUTINE ${LEVELX_ROUTINES})
|
||||||
set(HEADERS ${HEADERS} src/routines/levelx/${ROUTINE}.hpp)
|
set(HEADERS ${HEADERS} src/routines/levelx/${ROUTINE}.hpp)
|
||||||
endforeach()
|
endforeach()
|
||||||
foreach(DATABASE ${DATABASES})
|
foreach(DATABASE ${DATABASES})
|
||||||
|
set(SOURCES ${SOURCES} src/database/kernels/${DATABASE}/${DATABASE}.cpp)
|
||||||
set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${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}_16.hpp)
|
||||||
set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_32.hpp)
|
set(HEADERS ${HEADERS} src/database/kernels/${DATABASE}/${DATABASE}_32.hpp)
|
||||||
|
|
|
@ -90,13 +90,29 @@ def get_cpp_device_vendor(vendor, device_type):
|
||||||
|
|
||||||
def get_cpp_family_includes(family, precisions):
|
def get_cpp_family_includes(family, precisions):
|
||||||
result = "\n"
|
result = "\n"
|
||||||
# result += "#include \"clblast.h\"\n"
|
result += "#include \"database/kernels/%s/%s.hpp\"\n" % (family, family)
|
||||||
# result += "#include \"database/database_structure.hpp\"\n"
|
|
||||||
for precision in precisions:
|
for precision in precisions:
|
||||||
result += "#include \"database/kernels/%s/%s_%s.hpp\"\n" % (family, family, precision)
|
result += "#include \"database/kernels/%s/%s_%s.hpp\"\n" % (family, family, precision)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_hpp_family_includes(family, precisions):
|
||||||
|
result = "\n"
|
||||||
|
result += "#include \"database/database_structure.hpp\"\n"
|
||||||
|
result += "\n"
|
||||||
|
result += "namespace clblast {\n"
|
||||||
|
result += "namespace database {\n"
|
||||||
|
result += "\n"
|
||||||
|
camelcase_name = family.title().replace("_", "")
|
||||||
|
for precision in precisions:
|
||||||
|
precision_string = precision_to_string(precision)
|
||||||
|
result += "extern const DatabaseEntry %s%s;\n" % (camelcase_name, precision_string)
|
||||||
|
result += "\n"
|
||||||
|
result += "} // namespace database\n"
|
||||||
|
result += "} // namespace clblast\n"
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def print_as_name(name):
|
def print_as_name(name):
|
||||||
return "Name{\"%-50s\"}" % name.strip()[:STRING_LENGTH]
|
return "Name{\"%-50s\"}" % name.strip()[:STRING_LENGTH]
|
||||||
|
|
||||||
|
@ -238,8 +254,14 @@ def print_cpp_database(database, output_dir):
|
||||||
# Prints the file footer
|
# Prints the file footer
|
||||||
f.write(get_cpp_footer())
|
f.write(get_cpp_footer())
|
||||||
|
|
||||||
|
# Creates the combined family sources
|
||||||
|
full_path = os.path.join(family_path, family_name + ".cpp")
|
||||||
|
with open(full_path, 'w+') as f:
|
||||||
|
f.write(get_cpp_header(family_name, ""))
|
||||||
|
f.write(get_cpp_family_includes(family_name, precisions))
|
||||||
|
|
||||||
# Creates the combined family includes header
|
# Creates the combined family includes header
|
||||||
full_path = os.path.join(family_path, family_name + ".hpp")
|
full_path = os.path.join(family_path, family_name + ".hpp")
|
||||||
with open(full_path, 'w+') as f:
|
with open(full_path, 'w+') as f:
|
||||||
f.write(get_cpp_header(family_name, ""))
|
f.write(get_cpp_header(family_name, ""))
|
||||||
f.write(get_cpp_family_includes(family_name, precisions))
|
f.write(get_hpp_family_includes(family_name, precisions))
|
||||||
|
|
|
@ -19,6 +19,13 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
// Just needed for 'Precision'
|
||||||
|
#ifdef OPENCL_API
|
||||||
|
#include "clblast.h"
|
||||||
|
#elif CUDA_API
|
||||||
|
#include "clblast_cuda.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace clblast {
|
namespace clblast {
|
||||||
// A special namespace to hold all the global constant variables (including the database entries)
|
// A special namespace to hold all the global constant variables (including the database entries)
|
||||||
namespace database {
|
namespace database {
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/copy/copy_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/copy/copy_32.hpp"
|
|
||||||
#include "database/kernels/copy/copy_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/copy/copy_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/copy/copy_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry CopyHalf;
|
||||||
|
extern const DatabaseEntry CopySingle;
|
||||||
|
extern const DatabaseEntry CopyComplexSingle;
|
||||||
|
extern const DatabaseEntry CopyDouble;
|
||||||
|
extern const DatabaseEntry CopyComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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 'Gemm_Routine' kernels.
|
||||||
|
//
|
||||||
|
// =================================================================================================
|
||||||
|
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine.hpp"
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine_16.hpp"
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine_32.hpp"
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine_3232.hpp"
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine_64.hpp"
|
||||||
|
#include "database/kernels/gemm_routine/gemm_routine_6464.hpp"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/gemm_routine/gemm_routine_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/gemm_routine/gemm_routine_32.hpp"
|
|
||||||
#include "database/kernels/gemm_routine/gemm_routine_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/gemm_routine/gemm_routine_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/gemm_routine/gemm_routine_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry GemmRoutineHalf;
|
||||||
|
extern const DatabaseEntry GemmRoutineSingle;
|
||||||
|
extern const DatabaseEntry GemmRoutineComplexSingle;
|
||||||
|
extern const DatabaseEntry GemmRoutineDouble;
|
||||||
|
extern const DatabaseEntry GemmRoutineComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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 'Invert' kernels.
|
||||||
|
//
|
||||||
|
// =================================================================================================
|
||||||
|
|
||||||
|
#include "database/kernels/invert/invert.hpp"
|
||||||
|
#include "database/kernels/invert/invert_16.hpp"
|
||||||
|
#include "database/kernels/invert/invert_32.hpp"
|
||||||
|
#include "database/kernels/invert/invert_3232.hpp"
|
||||||
|
#include "database/kernels/invert/invert_64.hpp"
|
||||||
|
#include "database/kernels/invert/invert_6464.hpp"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/invert/invert_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/invert/invert_32.hpp"
|
|
||||||
#include "database/kernels/invert/invert_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/invert/invert_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/invert/invert_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry InvertHalf;
|
||||||
|
extern const DatabaseEntry InvertSingle;
|
||||||
|
extern const DatabaseEntry InvertComplexSingle;
|
||||||
|
extern const DatabaseEntry InvertDouble;
|
||||||
|
extern const DatabaseEntry InvertComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/pad/pad_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/pad/pad_32.hpp"
|
|
||||||
#include "database/kernels/pad/pad_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/pad/pad_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/pad/pad_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry PadHalf;
|
||||||
|
extern const DatabaseEntry PadSingle;
|
||||||
|
extern const DatabaseEntry PadComplexSingle;
|
||||||
|
extern const DatabaseEntry PadDouble;
|
||||||
|
extern const DatabaseEntry PadComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/padtranspose/padtranspose_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/padtranspose/padtranspose_32.hpp"
|
|
||||||
#include "database/kernels/padtranspose/padtranspose_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/padtranspose/padtranspose_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/padtranspose/padtranspose_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry PadtransposeHalf;
|
||||||
|
extern const DatabaseEntry PadtransposeSingle;
|
||||||
|
extern const DatabaseEntry PadtransposeComplexSingle;
|
||||||
|
extern const DatabaseEntry PadtransposeDouble;
|
||||||
|
extern const DatabaseEntry PadtransposeComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/transpose/transpose_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/transpose/transpose_32.hpp"
|
|
||||||
#include "database/kernels/transpose/transpose_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/transpose/transpose_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/transpose/transpose_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry TransposeHalf;
|
||||||
|
extern const DatabaseEntry TransposeSingle;
|
||||||
|
extern const DatabaseEntry TransposeComplexSingle;
|
||||||
|
extern const DatabaseEntry TransposeDouble;
|
||||||
|
extern const DatabaseEntry TransposeComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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 'Trsv_Routine' kernels.
|
||||||
|
//
|
||||||
|
// =================================================================================================
|
||||||
|
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine.hpp"
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine_16.hpp"
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine_32.hpp"
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine_3232.hpp"
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine_64.hpp"
|
||||||
|
#include "database/kernels/trsv_routine/trsv_routine_6464.hpp"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/trsv_routine/trsv_routine_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/trsv_routine/trsv_routine_32.hpp"
|
|
||||||
#include "database/kernels/trsv_routine/trsv_routine_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/trsv_routine/trsv_routine_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/trsv_routine/trsv_routine_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry TrsvRoutineHalf;
|
||||||
|
extern const DatabaseEntry TrsvRoutineSingle;
|
||||||
|
extern const DatabaseEntry TrsvRoutineComplexSingle;
|
||||||
|
extern const DatabaseEntry TrsvRoutineDouble;
|
||||||
|
extern const DatabaseEntry TrsvRoutineComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xaxpy/xaxpy_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xaxpy/xaxpy_32.hpp"
|
|
||||||
#include "database/kernels/xaxpy/xaxpy_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xaxpy/xaxpy_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xaxpy/xaxpy_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XaxpyHalf;
|
||||||
|
extern const DatabaseEntry XaxpySingle;
|
||||||
|
extern const DatabaseEntry XaxpyComplexSingle;
|
||||||
|
extern const DatabaseEntry XaxpyDouble;
|
||||||
|
extern const DatabaseEntry XaxpyComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xdot/xdot_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xdot/xdot_32.hpp"
|
|
||||||
#include "database/kernels/xdot/xdot_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xdot/xdot_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xdot/xdot_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XdotHalf;
|
||||||
|
extern const DatabaseEntry XdotSingle;
|
||||||
|
extern const DatabaseEntry XdotComplexSingle;
|
||||||
|
extern const DatabaseEntry XdotDouble;
|
||||||
|
extern const DatabaseEntry XdotComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xgemm/xgemm_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xgemm/xgemm_32.hpp"
|
|
||||||
#include "database/kernels/xgemm/xgemm_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xgemm/xgemm_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xgemm/xgemm_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgemmHalf;
|
||||||
|
extern const DatabaseEntry XgemmSingle;
|
||||||
|
extern const DatabaseEntry XgemmComplexSingle;
|
||||||
|
extern const DatabaseEntry XgemmDouble;
|
||||||
|
extern const DatabaseEntry XgemmComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xgemm_direct/xgemm_direct_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xgemm_direct/xgemm_direct_32.hpp"
|
|
||||||
#include "database/kernels/xgemm_direct/xgemm_direct_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xgemm_direct/xgemm_direct_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xgemm_direct/xgemm_direct_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgemmDirectHalf;
|
||||||
|
extern const DatabaseEntry XgemmDirectSingle;
|
||||||
|
extern const DatabaseEntry XgemmDirectComplexSingle;
|
||||||
|
extern const DatabaseEntry XgemmDirectDouble;
|
||||||
|
extern const DatabaseEntry XgemmDirectComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xgemv/xgemv_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xgemv/xgemv_32.hpp"
|
|
||||||
#include "database/kernels/xgemv/xgemv_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xgemv/xgemv_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xgemv/xgemv_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgemvHalf;
|
||||||
|
extern const DatabaseEntry XgemvSingle;
|
||||||
|
extern const DatabaseEntry XgemvComplexSingle;
|
||||||
|
extern const DatabaseEntry XgemvDouble;
|
||||||
|
extern const DatabaseEntry XgemvComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xgemv_fast/xgemv_fast_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xgemv_fast/xgemv_fast_32.hpp"
|
|
||||||
#include "database/kernels/xgemv_fast/xgemv_fast_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xgemv_fast/xgemv_fast_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xgemv_fast/xgemv_fast_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgemvFastHalf;
|
||||||
|
extern const DatabaseEntry XgemvFastSingle;
|
||||||
|
extern const DatabaseEntry XgemvFastComplexSingle;
|
||||||
|
extern const DatabaseEntry XgemvFastDouble;
|
||||||
|
extern const DatabaseEntry XgemvFastComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp"
|
|
||||||
#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgemvFastRotHalf;
|
||||||
|
extern const DatabaseEntry XgemvFastRotSingle;
|
||||||
|
extern const DatabaseEntry XgemvFastRotComplexSingle;
|
||||||
|
extern const DatabaseEntry XgemvFastRotDouble;
|
||||||
|
extern const DatabaseEntry XgemvFastRotComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// =================================================================================================
|
||||||
|
// 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.hpp"
|
||||||
|
#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"
|
|
@ -7,8 +7,16 @@
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
#include "database/kernels/xger/xger_16.hpp"
|
#include "database/database_structure.hpp"
|
||||||
#include "database/kernels/xger/xger_32.hpp"
|
|
||||||
#include "database/kernels/xger/xger_3232.hpp"
|
namespace clblast {
|
||||||
#include "database/kernels/xger/xger_64.hpp"
|
namespace database {
|
||||||
#include "database/kernels/xger/xger_6464.hpp"
|
|
||||||
|
extern const DatabaseEntry XgerHalf;
|
||||||
|
extern const DatabaseEntry XgerSingle;
|
||||||
|
extern const DatabaseEntry XgerComplexSingle;
|
||||||
|
extern const DatabaseEntry XgerDouble;
|
||||||
|
extern const DatabaseEntry XgerComplexDouble;
|
||||||
|
|
||||||
|
} // namespace database
|
||||||
|
} // namespace clblast
|
||||||
|
|
Loading…
Reference in New Issue