diff options
-rw-r--r-- | include/clblast.h | 24 | ||||
-rw-r--r-- | include/clblast_c.h | 24 | ||||
-rwxr-xr-x[-rw-r--r--] | scripts/generator/generator.py | 31 |
3 files changed, 58 insertions, 21 deletions
diff --git a/include/clblast.h b/include/clblast.h index 53e23669..7b2021d8 100644 --- a/include/clblast.h +++ b/include/clblast.h @@ -46,14 +46,34 @@ enum class StatusCode { // Status codes in common with the OpenCL standard kSuccess = 0, // CL_SUCCESS + kOpenCLCompilerNotAvailable= -3, // CL_COMPILER_NOT_AVAILABLE kTempBufferAllocFailure = -4, // CL_MEM_OBJECT_ALLOCATION_FAILURE - kBuildProgramFailure = -11, // CL_BUILD_PROGRAM_FAILURE: OpenCL compilation error + kOpenCLOutOfResources = -5, // CL_OUT_OF_RESOURCES + kOpenCLOutOfHostMemory = -6, // CL_OUT_OF_HOST_MEMORY + kOpenCLBuildProgramFailure = -11, // CL_BUILD_PROGRAM_FAILURE: OpenCL compilation error + kInvalidValue = -30, // CL_INVALID_VALUE + kInvalidCommandQueue = -36, // CL_INVALID_COMMAND_QUEUE + kInvalidMemObject = -38, // CL_INVALID_MEM_OBJECT kInvalidBinary = -42, // CL_INVALID_BINARY + kInvalidBuildOptions = -43, // CL_INVALID_BUILD_OPTIONS + kInvalidProgram = -44, // CL_INVALID_PROGRAM + kInvalidProgramExecutable = -45, // CL_INVALID_PROGRAM_EXECUTABLE + kInvalidKernelName = -46, // CL_INVALID_KERNEL_NAME + kInvalidKernelDefinition = -47, // CL_INVALID_KERNEL_DEFINITION kInvalidKernel = -48, // CL_INVALID_KERNEL + kInvalidArgIndex = -49, // CL_INVALID_ARG_INDEX + kInvalidArgValue = -50, // CL_INVALID_ARG_VALUE + kInvalidArgSize = -51, // CL_INVALID_ARG_SIZE + kInvalidKernelArgs = -52, // CL_INVALID_KERNEL_ARGS kInvalidLocalNumDimensions = -53, // CL_INVALID_WORK_DIMENSION: Too many thread dimensions kInvalidLocalThreadsTotal = -54, // CL_INVALID_WORK_GROUP_SIZE: Too many threads in total kInvalidLocalThreadsDim = -55, // CL_INVALID_WORK_ITEM_SIZE: ... or for a specific dimension - kInvalidTempBufferSize = -61, // CL_INVALID_BUFFER_SIZE + kInvalidGlobalOffset = -56, // CL_INVALID_GLOBAL_OFFSET + kInvalidEventWaitList = -57, // CL_INVALID_EVENT_WAIT_LIST + kInvalidEvent = -58, // CL_INVALID_EVENT + kInvalidOperation = -59, // CL_INVALID_OPERATION + kInvalidBufferSize = -61, // CL_INVALID_BUFFER_SIZE + kInvalidGlobalWorkSize = -63, // CL_INVALID_GLOBAL_WORK_SIZE // Status codes in common with the clBLAS library kNotImplemented = -1024, // Routine or functionality not implemented yet diff --git a/include/clblast_c.h b/include/clblast_c.h index 2805c20f..294c3c50 100644 --- a/include/clblast_c.h +++ b/include/clblast_c.h @@ -47,14 +47,34 @@ typedef enum StatusCode_ { // Status codes in common with the OpenCL standard kSuccess = 0, // CL_SUCCESS + kOpenCLCompilerNotAvailable= -3, // CL_COMPILER_NOT_AVAILABLE kTempBufferAllocFailure = -4, // CL_MEM_OBJECT_ALLOCATION_FAILURE - kBuildProgramFailure = -11, // CL_BUILD_PROGRAM_FAILURE: OpenCL compilation error + kOpenCLOutOfResources = -5, // CL_OUT_OF_RESOURCES + kOpenCLOutOfHostMemory = -6, // CL_OUT_OF_HOST_MEMORY + kOpenCLBuildProgramFailure = -11, // CL_BUILD_PROGRAM_FAILURE: OpenCL compilation error + kInvalidValue = -30, // CL_INVALID_VALUE + kInvalidCommandQueue = -36, // CL_INVALID_COMMAND_QUEUE + kInvalidMemObject = -38, // CL_INVALID_MEM_OBJECT kInvalidBinary = -42, // CL_INVALID_BINARY + kInvalidBuildOptions = -43, // CL_INVALID_BUILD_OPTIONS + kInvalidProgram = -44, // CL_INVALID_PROGRAM + kInvalidProgramExecutable = -45, // CL_INVALID_PROGRAM_EXECUTABLE + kInvalidKernelName = -46, // CL_INVALID_KERNEL_NAME + kInvalidKernelDefinition = -47, // CL_INVALID_KERNEL_DEFINITION kInvalidKernel = -48, // CL_INVALID_KERNEL + kInvalidArgIndex = -49, // CL_INVALID_ARG_INDEX + kInvalidArgValue = -50, // CL_INVALID_ARG_VALUE + kInvalidArgSize = -51, // CL_INVALID_ARG_SIZE + kInvalidKernelArgs = -52, // CL_INVALID_KERNEL_ARGS kInvalidLocalNumDimensions = -53, // CL_INVALID_WORK_DIMENSION: Too many thread dimensions kInvalidLocalThreadsTotal = -54, // CL_INVALID_WORK_GROUP_SIZE: Too many threads in total kInvalidLocalThreadsDim = -55, // CL_INVALID_WORK_ITEM_SIZE: ... or for a specific dimension - kInvalidTempBufferSize = -61, // CL_INVALID_BUFFER_SIZE + kInvalidGlobalOffset = -56, // CL_INVALID_GLOBAL_OFFSET + kInvalidEventWaitList = -57, // CL_INVALID_EVENT_WAIT_LIST + kInvalidEvent = -58, // CL_INVALID_EVENT + kInvalidOperation = -59, // CL_INVALID_OPERATION + kInvalidBufferSize = -61, // CL_INVALID_BUFFER_SIZE + kInvalidGlobalWorkSize = -63, // CL_INVALID_GLOBAL_WORK_SIZE // Status codes in common with the clBLAS library kNotImplemented = -1024, // Routine or functionality not implemented yet diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py index 04ab5475..aabce8d7 100644..100755 --- a/scripts/generator/generator.py +++ b/scripts/generator/generator.py @@ -29,8 +29,15 @@ import generator.doc as doc from generator.routine import Routine from generator.datatype import H, S, D, C, Z, Sc, Dz, iH, iS, iD, iC, iZ, Css, Zdd, Ccs, Zzd, T, Tc, TU - -HEADER_LINES = [97, 73, 98, 22, 29, 41] +FILES = [ + "/include/clblast.h", + "/src/clblast.cpp", + "/include/clblast_c.h", + "/src/clblast_c.cpp", + "/test/wrapper_clblas.hpp", + "/test/wrapper_cblas.hpp", +] +HEADER_LINES = [117, 73, 118, 22, 29, 41] FOOTER_LINES = [17, 80, 19, 18, 6, 6] # Different possibilities for requirements @@ -124,33 +131,23 @@ def main(argv): cl_args = parser.parse_args(argv) library_root = cl_args.clblast_root - # Sets all the files the output - files = [ - library_root + "/include/clblast.h", - library_root + "/src/clblast.cpp", - library_root + "/include/clblast_c.h", - library_root + "/src/clblast_c.cpp", - library_root + "/test/wrapper_clblas.hpp", - library_root + "/test/wrapper_cblas.hpp", - ] - # Checks whether the command-line arguments are valid; exists otherwise - for f in files: - if not os.path.isfile(f): + for f in FILES: + if not os.path.isfile(library_root + f): print("[ERROR] The path '" + library_root + "' does not point to the root of the CLBlast library") sys.exit() # Iterates over all regular files to output - for i in range(0, len(files)): + for i in range(0, len(FILES)): # Stores the header and the footer of the original file - with open(files[i]) as f: + with open(library_root + FILES[i]) as f: original = f.readlines() file_header = original[:HEADER_LINES[i]] file_footer = original[-FOOTER_LINES[i]:] # Re-writes the body of the file - with open(files[i], "w") as f: + with open(library_root + FILES[i], "w") as f: body = "" levels = [1, 2, 3] if (i == 4 or i == 5) else [1, 2, 3, 4] for level in levels: |