From 60a9c8b33c6da9e64f7e5ef3178c8275895d519e Mon Sep 17 00:00:00 2001 From: Shehzan Mohammed Date: Tue, 26 Apr 2016 17:46:42 -0400 Subject: [PATCH 1/4] Fix compiler warning in tests --- test/gloh_nonfree.cpp | 22 ---------------------- test/orb.cpp | 12 ------------ test/sift_nonfree.cpp | 22 ---------------------- test/transform_coordinates.cpp | 4 ++-- 4 files changed, 2 insertions(+), 58 deletions(-) diff --git a/test/gloh_nonfree.cpp b/test/gloh_nonfree.cpp index 5794051152..558acabe25 100644 --- a/test/gloh_nonfree.cpp +++ b/test/gloh_nonfree.cpp @@ -77,18 +77,6 @@ static void array_to_feat_desc(vector& feat, float* x, float* y, fl } } -static void array_to_feat(vector& feat, float *x, float *y, float *score, float *ori, float *size, unsigned nfeat) -{ - feat.resize(nfeat); - for (unsigned i = 0; i < feat.size(); i++) { - feat[i].f[0] = x[i]; - feat[i].f[1] = y[i]; - feat[i].f[2] = score[i]; - feat[i].f[3] = ori[i]; - feat[i].f[4] = size[i]; - } -} - static void split_feat_desc(vector& fd, vector& f, vector& d) { f.resize(fd.size()); @@ -104,16 +92,6 @@ static void split_feat_desc(vector& fd, vector& f, vector> 1) & 0x55555555); - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0F0F0F0F; - x = x + (x >> 8); - x = x + (x >> 16); - return x & 0x0000003F; -} - static bool compareEuclidean(dim_t desc_len, dim_t ndesc, float *cpu, float *gpu, float unit_thr = 1.f, float euc_thr = 1.f) { bool ret = true; diff --git a/test/orb.cpp b/test/orb.cpp index 1266f20eb6..28e56a1132 100644 --- a/test/orb.cpp +++ b/test/orb.cpp @@ -76,18 +76,6 @@ static void array_to_feat_desc(vector& feat, float* x, float* y, fl } } -static void array_to_feat(vector& feat, float *x, float *y, float *score, float *ori, float *size, unsigned nfeat) -{ - feat.resize(nfeat); - for (unsigned i = 0; i < feat.size(); i++) { - feat[i].f[0] = x[i]; - feat[i].f[1] = y[i]; - feat[i].f[2] = score[i]; - feat[i].f[3] = ori[i]; - feat[i].f[4] = size[i]; - } -} - static void split_feat_desc(vector& fd, vector& f, vector& d) { f.resize(fd.size()); diff --git a/test/sift_nonfree.cpp b/test/sift_nonfree.cpp index 6776c18a86..f6dca7ba16 100644 --- a/test/sift_nonfree.cpp +++ b/test/sift_nonfree.cpp @@ -76,18 +76,6 @@ static void array_to_feat_desc(vector& feat, float* x, float* y, fl } } -static void array_to_feat(vector& feat, float *x, float *y, float *score, float *ori, float *size, unsigned nfeat) -{ - feat.resize(nfeat); - for (unsigned i = 0; i < feat.size(); i++) { - feat[i].f[0] = x[i]; - feat[i].f[1] = y[i]; - feat[i].f[2] = score[i]; - feat[i].f[3] = ori[i]; - feat[i].f[4] = size[i]; - } -} - static void split_feat_desc(vector& fd, vector& f, vector& d) { f.resize(fd.size()); @@ -103,16 +91,6 @@ static void split_feat_desc(vector& fd, vector& f, vector> 1) & 0x55555555); - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0F0F0F0F; - x = x + (x >> 8); - x = x + (x >> 16); - return x & 0x0000003F; -} - static bool compareEuclidean(dim_t desc_len, dim_t ndesc, float *cpu, float *gpu, float unit_thr = 1.f, float euc_thr = 1.f) { bool ret = true; diff --git a/test/transform_coordinates.cpp b/test/transform_coordinates.cpp index 7f1ac4e893..dc8598121e 100644 --- a/test/transform_coordinates.cpp +++ b/test/transform_coordinates.cpp @@ -47,7 +47,7 @@ void transformCoordinatesTest(string pTestFile) af_array outArray = 0; ASSERT_EQ(AF_SUCCESS, af_create_array(&tfArray, &(in[0].front()), inDims[0].ndims(), inDims[0].get(), (af_dtype)af::dtype_traits::af_type)); - size_t nTests = in.size(); + int nTests = in.size(); for (int test = 1; test < nTests; test++) { dim_t d0 = (dim_t)in[test][0]; @@ -63,7 +63,7 @@ void transformCoordinatesTest(string pTestFile) const float thr = 1.f; - for (size_t elIter = 0; elIter < outEl; elIter++) { + for (dim_t elIter = 0; elIter < outEl; elIter++) { ASSERT_LE(fabs(outData[elIter] - gold[test-1][elIter]), thr) << "at: " << elIter << std::endl; } From b8c506d14fb504b24abdb8410559b236776a4029 Mon Sep 17 00:00:00 2001 From: Shehzan Mohammed Date: Tue, 26 Apr 2016 18:01:58 -0400 Subject: [PATCH 2/4] CPU: Compile sort_by_key instantiations from single file into objects --- src/backend/cpu/CMakeLists.txt | 24 ++++++++++--------- .../cpu/kernel/sort_by_key/CMakeLists.txt | 15 ++++++++++++ src/backend/cpu/kernel/sort_by_key/f32.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/f64.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/s16.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/s32.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/s64.cpp | 19 --------------- .../{b8.cpp => sort_by_key_impl.cpp} | 6 +++-- src/backend/cpu/kernel/sort_by_key/u16.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/u32.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/u64.cpp | 19 --------------- src/backend/cpu/kernel/sort_by_key/u8.cpp | 19 --------------- 12 files changed, 32 insertions(+), 184 deletions(-) create mode 100644 src/backend/cpu/kernel/sort_by_key/CMakeLists.txt delete mode 100644 src/backend/cpu/kernel/sort_by_key/f32.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/f64.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/s16.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/s32.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/s64.cpp rename src/backend/cpu/kernel/sort_by_key/{b8.cpp => sort_by_key_impl.cpp} (76%) delete mode 100644 src/backend/cpu/kernel/sort_by_key/u16.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/u32.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/u64.cpp delete mode 100644 src/backend/cpu/kernel/sort_by_key/u8.cpp diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt index ea572693e1..0863266c4f 100644 --- a/src/backend/cpu/CMakeLists.txt +++ b/src/backend/cpu/CMakeLists.txt @@ -108,8 +108,7 @@ FILE(GLOB cpu_headers "*.h") FILE(GLOB cpu_sources - "*.cpp" - "kernel/sort_by_key/*.cpp") + "*.cpp") LIST(SORT cpu_headers) LIST(SORT cpu_sources) @@ -162,13 +161,15 @@ ELSE(${UNIX}) #Windows SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ENDIF() +INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/CMakeLists.txt") IF(DEFINED BLAS_SYM_FILE) ADD_LIBRARY(afcpu_static STATIC ${cpu_headers} ${cpu_sources} ${backend_headers} - ${backend_sources}) + ${backend_sources} + ${SORT_BY_KEY_OBJECTS}) ADD_LIBRARY(afcpu SHARED ${c_headers} @@ -192,14 +193,15 @@ IF(DEFINED BLAS_SYM_FILE) ELSE(DEFINED BLAS_SYM_FILE) - ADD_LIBRARY(afcpu SHARED - ${cpu_headers} - ${cpu_sources} - ${backend_headers} - ${backend_sources} - ${c_headers} - ${c_sources} - ${cpp_sources}) +ADD_LIBRARY(afcpu SHARED + ${cpu_headers} + ${cpu_sources} + ${backend_headers} + ${backend_sources} + ${c_headers} + ${c_sources} + ${cpp_sources} + ${SORT_BY_KEY_OBJECTS}) ENDIF(DEFINED BLAS_SYM_FILE) diff --git a/src/backend/cpu/kernel/sort_by_key/CMakeLists.txt b/src/backend/cpu/kernel/sort_by_key/CMakeLists.txt new file mode 100644 index 0000000000..017bb90bb6 --- /dev/null +++ b/src/backend/cpu/kernel/sort_by_key/CMakeLists.txt @@ -0,0 +1,15 @@ +FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cpp" FILESTRINGS) + +FOREACH(STR ${FILESTRINGS}) + IF(${STR} MATCHES "// SBK_TYPES") + STRING(REPLACE "// SBK_TYPES:" "" TEMP ${STR}) + STRING(REPLACE " " ";" SBK_TYPES ${TEMP}) + ENDIF() +ENDFOREACH() + +FOREACH(SBK_TYPE ${SBK_TYPES}) + ADD_LIBRARY(cpu_sort_by_key_${SBK_TYPE} OBJECT + "${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cpp") + SET_TARGET_PROPERTIES(cpu_sort_by_key_${SBK_TYPE} PROPERTIES COMPILE_FLAGS "-DTYPE=${SBK_TYPE}") + LIST(APPEND SORT_BY_KEY_OBJECTS $) +ENDFOREACH(SBK_TYPE ${SBK_TYPES}) diff --git a/src/backend/cpu/kernel/sort_by_key/f32.cpp b/src/backend/cpu/kernel/sort_by_key/f32.cpp deleted file mode 100644 index 11d8139957..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/f32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(float,true) - INSTANTIATE1(float,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/f64.cpp b/src/backend/cpu/kernel/sort_by_key/f64.cpp deleted file mode 100644 index 21746d773a..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/f64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(double,true) - INSTANTIATE1(double,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/s16.cpp b/src/backend/cpu/kernel/sort_by_key/s16.cpp deleted file mode 100644 index 50b718d04c..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/s16.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(short,true) - INSTANTIATE1(short,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/s32.cpp b/src/backend/cpu/kernel/sort_by_key/s32.cpp deleted file mode 100644 index c50efcdc26..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/s32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(int,true) - INSTANTIATE1(int,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/s64.cpp b/src/backend/cpu/kernel/sort_by_key/s64.cpp deleted file mode 100644 index 82946f820e..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/s64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(intl,true) - INSTANTIATE1(intl,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/b8.cpp b/src/backend/cpu/kernel/sort_by_key/sort_by_key_impl.cpp similarity index 76% rename from src/backend/cpu/kernel/sort_by_key/b8.cpp rename to src/backend/cpu/kernel/sort_by_key/sort_by_key_impl.cpp index 855e7a93ca..fbdedfde39 100644 --- a/src/backend/cpu/kernel/sort_by_key/b8.cpp +++ b/src/backend/cpu/kernel/sort_by_key/sort_by_key_impl.cpp @@ -9,11 +9,13 @@ #include +// SBK_TYPES:float double int uint intl uintl short ushort char uchar + namespace cpu { namespace kernel { - INSTANTIATE1(char,true) - INSTANTIATE1(char,false) + INSTANTIATE1(TYPE,true) + INSTANTIATE1(TYPE,false) } } diff --git a/src/backend/cpu/kernel/sort_by_key/u16.cpp b/src/backend/cpu/kernel/sort_by_key/u16.cpp deleted file mode 100644 index feedd1d56e..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/u16.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(ushort,true) - INSTANTIATE1(ushort,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/u32.cpp b/src/backend/cpu/kernel/sort_by_key/u32.cpp deleted file mode 100644 index cd514af19a..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/u32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(uint,true) - INSTANTIATE1(uint,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/u64.cpp b/src/backend/cpu/kernel/sort_by_key/u64.cpp deleted file mode 100644 index ec955b3de7..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/u64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(uintl,true) - INSTANTIATE1(uintl,false) -} -} diff --git a/src/backend/cpu/kernel/sort_by_key/u8.cpp b/src/backend/cpu/kernel/sort_by_key/u8.cpp deleted file mode 100644 index fd58cbfaa1..0000000000 --- a/src/backend/cpu/kernel/sort_by_key/u8.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cpu -{ -namespace kernel -{ - INSTANTIATE1(uchar,true) - INSTANTIATE1(uchar,false) -} -} From c354015282c322ff9418f2d4b1814d5f0263951c Mon Sep 17 00:00:00 2001 From: Shehzan Mohammed Date: Tue, 26 Apr 2016 17:47:30 -0400 Subject: [PATCH 3/4] CUDA: Generate sort_by_key instantiations using CMake --- src/backend/cuda/CMakeLists.txt | 4 ++- .../cuda/kernel/sort_by_key/CMakeLists.txt | 29 +++++++++++++++++++ .../cuda/kernel/sort_by_key/ascd_f64.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_s16.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_s32.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_s64.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_s8.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_u16.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_u32.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_u64.cu | 18 ------------ .../cuda/kernel/sort_by_key/ascd_u8.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_f32.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_f64.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_s16.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_s32.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_s64.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_s8.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_u16.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_u32.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_u64.cu | 18 ------------ .../cuda/kernel/sort_by_key/desc_u8.cu | 18 ------------ .../{ascd_f32.cu => sort_by_key_impl.cu.in} | 8 ++++- src/backend/cuda/kernel/sort_by_key_impl.hpp | 9 ++++-- 23 files changed, 45 insertions(+), 347 deletions(-) create mode 100644 src/backend/cuda/kernel/sort_by_key/CMakeLists.txt delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_f64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_s16.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_s32.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_s64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_s8.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_u16.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_u32.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_u64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/ascd_u8.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_f32.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_f64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_s16.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_s32.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_s64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_s8.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_u16.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_u32.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_u64.cu delete mode 100644 src/backend/cuda/kernel/sort_by_key/desc_u8.cu rename src/backend/cuda/kernel/sort_by_key/{ascd_f32.cu => sort_by_key_impl.cu.in} (57%) diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt index 4efb42764a..d1727ffd40 100644 --- a/src/backend/cuda/CMakeLists.txt +++ b/src/backend/cuda/CMakeLists.txt @@ -158,7 +158,6 @@ FILE(GLOB cuda_headers FILE(GLOB cuda_sources "*.cu" "*.cpp" - "kernel/sort_by_key/*.cu" "kernel/*.cu") FILE(GLOB jit_sources @@ -231,6 +230,8 @@ LIST(SORT cpp_sources) SOURCE_GROUP(api\\cpp\\Sources FILES ${cpp_sources}) +INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/CMakeLists.txt") + LIST(LENGTH COMPUTE_VERSIONS COMPUTE_COUNT) IF(${COMPUTE_COUNT} EQUAL 1) SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} ${CUDA_GENERATE_CODE}") @@ -361,6 +362,7 @@ MY_CUDA_ADD_LIBRARY(afcuda SHARED ${c_headers} ${c_sources} ${cpp_sources} + ${sort_by_key_sources} OPTIONS ${CUDA_GENERATE_CODE}) ADD_DEPENDENCIES(afcuda ${ptx_targets}) diff --git a/src/backend/cuda/kernel/sort_by_key/CMakeLists.txt b/src/backend/cuda/kernel/sort_by_key/CMakeLists.txt new file mode 100644 index 0000000000..a9143f282d --- /dev/null +++ b/src/backend/cuda/kernel/sort_by_key/CMakeLists.txt @@ -0,0 +1,29 @@ +FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cu.in" FILESTRINGS) + +FOREACH(STR ${FILESTRINGS}) + IF(${STR} MATCHES "// SBK_TYPES") + STRING(REPLACE "// SBK_TYPES:" "" TEMP ${STR}) + STRING(REPLACE " " ";" SBK_TYPES ${TEMP}) + ELSEIF(${STR} MATCHES "// SBK_DIRS:") + STRING(REPLACE "// SBK_DIRS:" "" TEMP ${STR}) + STRING(REPLACE " " ";" SBK_DIRS ${TEMP}) + ELSEIF(${STR} MATCHES "// SBK_INSTS:") + STRING(REPLACE "// SBK_INSTS:" "" TEMP ${STR}) + STRING(REPLACE " " ";" SBK_INSTS ${TEMP}) + ENDIF() +ENDFOREACH() + +FOREACH(SBK_TYPE ${SBK_TYPES}) + FOREACH(SBK_DIR ${SBK_DIRS}) + FOREACH(SBK_INST ${SBK_INSTS}) + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cu.in" + "${CMAKE_CURRENT_BINARY_DIR}/sort_by_key/sort_by_key_impl_${SBK_TYPE}_${SBK_DIR}_${SBK_INST}.cu") + ENDFOREACH(SBK_INST ${SBK_INSTS}) + ENDFOREACH(SBK_DIR ${SBK_DIRS}) +ENDFOREACH(SBK_TYPE ${SBK_TYPES}) + +FILE(GLOB sort_by_key_sources + "${CMAKE_CURRENT_BINARY_DIR}/sort_by_key/*.cu" +) + +LIST(SORT sort_by_key_sources) diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_f64.cu b/src/backend/cuda/kernel/sort_by_key/ascd_f64.cu deleted file mode 100644 index ba19ec447c..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_f64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(double, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_s16.cu b/src/backend/cuda/kernel/sort_by_key/ascd_s16.cu deleted file mode 100644 index 1be6e540ca..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_s16.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(short, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_s32.cu b/src/backend/cuda/kernel/sort_by_key/ascd_s32.cu deleted file mode 100644 index 8cee7c9b49..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_s32.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(int, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_s64.cu b/src/backend/cuda/kernel/sort_by_key/ascd_s64.cu deleted file mode 100644 index 0e5a7c81a2..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_s64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(intl, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_s8.cu b/src/backend/cuda/kernel/sort_by_key/ascd_s8.cu deleted file mode 100644 index 81ed32952f..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_s8.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(char, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_u16.cu b/src/backend/cuda/kernel/sort_by_key/ascd_u16.cu deleted file mode 100644 index e232c08376..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_u16.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(ushort, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_u32.cu b/src/backend/cuda/kernel/sort_by_key/ascd_u32.cu deleted file mode 100644 index 34a4580936..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_u32.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uint, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_u64.cu b/src/backend/cuda/kernel/sort_by_key/ascd_u64.cu deleted file mode 100644 index fc576e7f99..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_u64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uintl, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_u8.cu b/src/backend/cuda/kernel/sort_by_key/ascd_u8.cu deleted file mode 100644 index ed8454d53e..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/ascd_u8.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uchar, true) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_f32.cu b/src/backend/cuda/kernel/sort_by_key/desc_f32.cu deleted file mode 100644 index 73459ac033..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_f32.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(float, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_f64.cu b/src/backend/cuda/kernel/sort_by_key/desc_f64.cu deleted file mode 100644 index be0536b1e3..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_f64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(double, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_s16.cu b/src/backend/cuda/kernel/sort_by_key/desc_s16.cu deleted file mode 100644 index 0fc3b50827..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_s16.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(short, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_s32.cu b/src/backend/cuda/kernel/sort_by_key/desc_s32.cu deleted file mode 100644 index cfda29c7de..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_s32.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(int, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_s64.cu b/src/backend/cuda/kernel/sort_by_key/desc_s64.cu deleted file mode 100644 index b334a91a99..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_s64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(intl, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_s8.cu b/src/backend/cuda/kernel/sort_by_key/desc_s8.cu deleted file mode 100644 index f02d5ce2fe..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_s8.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(char, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_u16.cu b/src/backend/cuda/kernel/sort_by_key/desc_u16.cu deleted file mode 100644 index 9b0a77cb25..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_u16.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(ushort, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_u32.cu b/src/backend/cuda/kernel/sort_by_key/desc_u32.cu deleted file mode 100644 index 1d02aec848..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_u32.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uint, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_u64.cu b/src/backend/cuda/kernel/sort_by_key/desc_u64.cu deleted file mode 100644 index 597bd2c1b4..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_u64.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uintl, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/desc_u8.cu b/src/backend/cuda/kernel/sort_by_key/desc_u8.cu deleted file mode 100644 index 4f55479604..0000000000 --- a/src/backend/cuda/kernel/sort_by_key/desc_u8.cu +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace cuda -{ -namespace kernel -{ - INSTANTIATE1(uchar, false) -} -} diff --git a/src/backend/cuda/kernel/sort_by_key/ascd_f32.cu b/src/backend/cuda/kernel/sort_by_key/sort_by_key_impl.cu.in similarity index 57% rename from src/backend/cuda/kernel/sort_by_key/ascd_f32.cu rename to src/backend/cuda/kernel/sort_by_key/sort_by_key_impl.cu.in index 284e8b4938..94168df1de 100644 --- a/src/backend/cuda/kernel/sort_by_key/ascd_f32.cu +++ b/src/backend/cuda/kernel/sort_by_key/sort_by_key_impl.cu.in @@ -9,10 +9,16 @@ #include +// This file instantiates sort_by_key as separate object files from CMake +// The 3 lines below are read by CMake to determenine the instantiations +// SBK_TYPES:float double int uint intl uintl short ushort char uchar +// SBK_DIRS:true false +// SBK_INSTS:0 1 + namespace cuda { namespace kernel { - INSTANTIATE1(float, true) + INSTANTIATE@SBK_INST@(@SBK_TYPE@, @SBK_DIR@) } } diff --git a/src/backend/cuda/kernel/sort_by_key_impl.hpp b/src/backend/cuda/kernel/sort_by_key_impl.hpp index bcc2fefeb4..c035e3ae07 100644 --- a/src/backend/cuda/kernel/sort_by_key_impl.hpp +++ b/src/backend/cuda/kernel/sort_by_key_impl.hpp @@ -198,18 +198,21 @@ namespace cuda template void sortByKeyBatched(Param okey, Param oval); \ template void sortByKeyBatched(Param okey, Param oval); \ -#define INSTANTIATE1(Tk , dr) \ +#define INSTANTIATE0(Tk , dr) \ INSTANTIATE(Tk, float , dr) \ INSTANTIATE(Tk, double , dr) \ INSTANTIATE(Tk, cfloat , dr) \ INSTANTIATE(Tk, cdouble, dr) \ + INSTANTIATE(Tk, char , dr) \ + INSTANTIATE(Tk, uchar , dr) \ + +#define INSTANTIATE1(Tk , dr) \ INSTANTIATE(Tk, int , dr) \ INSTANTIATE(Tk, uint , dr) \ INSTANTIATE(Tk, short , dr) \ INSTANTIATE(Tk, ushort , dr) \ - INSTANTIATE(Tk, char , dr) \ - INSTANTIATE(Tk, uchar , dr) \ INSTANTIATE(Tk, intl , dr) \ INSTANTIATE(Tk, uintl , dr) + } } From da69c30a3556cc7909d5193c8e8dcbb68591ab81 Mon Sep 17 00:00:00 2001 From: Shehzan Mohammed Date: Tue, 26 Apr 2016 18:11:16 -0400 Subject: [PATCH 4/4] OpenCL: Compile sort_by_key instantiations from single file into objects --- src/backend/opencl/CMakeLists.txt | 11 +++++++---- .../opencl/kernel/sort_by_key/CMakeLists.txt | 19 +++++++++++++++++++ src/backend/opencl/kernel/sort_by_key/f32.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/f64.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/s16.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/s32.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/s64.cpp | 19 ------------------- .../{b8.cpp => sort_by_key_impl.cpp} | 6 ++++-- src/backend/opencl/kernel/sort_by_key/u16.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/u32.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/u64.cpp | 19 ------------------- src/backend/opencl/kernel/sort_by_key/u8.cpp | 19 ------------------- 12 files changed, 30 insertions(+), 177 deletions(-) create mode 100644 src/backend/opencl/kernel/sort_by_key/CMakeLists.txt delete mode 100644 src/backend/opencl/kernel/sort_by_key/f32.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/f64.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/s16.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/s32.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/s64.cpp rename src/backend/opencl/kernel/sort_by_key/{b8.cpp => sort_by_key_impl.cpp} (76%) delete mode 100644 src/backend/opencl/kernel/sort_by_key/u16.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/u32.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/u64.cpp delete mode 100644 src/backend/opencl/kernel/sort_by_key/u8.cpp diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt index 71247ce3da..9e4918a5ff 100644 --- a/src/backend/opencl/CMakeLists.txt +++ b/src/backend/opencl/CMakeLists.txt @@ -126,8 +126,7 @@ FILE(GLOB opencl_kernels "kernel/*.cl") FILE(GLOB kernel_sources - "kernel/*.cpp" - "kernel/sort_by_key/*.cpp") + "kernel/*.cpp") FILE(GLOB conv_ker_headers "kernel/convolve/*.hpp") @@ -237,6 +236,8 @@ IF(UNIX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pthread -Wno-comment") ENDIF() +INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/CMakeLists.txt") + IF(DEFINED BLAS_SYM_FILE) ADD_LIBRARY(afopencl_static STATIC @@ -253,7 +254,8 @@ IF(DEFINED BLAS_SYM_FILE) ${backend_headers} ${backend_sources} ${magma_sources} - ${magma_headers}) + ${magma_headers} + ${SORT_BY_KEY_OBJECTS}) ADD_LIBRARY(afopencl SHARED ${c_headers} @@ -296,7 +298,8 @@ ELSE(DEFINED BLAS_SYM_FILE) ${c_sources} ${cpp_sources} ${magma_sources} - ${magma_headers}) + ${magma_headers} + ${SORT_BY_KEY_OBJECTS}) ENDIF() diff --git a/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt new file mode 100644 index 0000000000..760fe6b634 --- /dev/null +++ b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt @@ -0,0 +1,19 @@ +FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cpp" FILESTRINGS) + +FOREACH(STR ${FILESTRINGS}) + IF(${STR} MATCHES "// SBK_TYPES") + STRING(REPLACE "// SBK_TYPES:" "" TEMP ${STR}) + STRING(REPLACE " " ";" SBK_TYPES ${TEMP}) + ENDIF() +ENDFOREACH() + +FOREACH(SBK_TYPE ${SBK_TYPES}) + ADD_LIBRARY(opencl_sort_by_key_${SBK_TYPE} OBJECT + "${CMAKE_CURRENT_SOURCE_DIR}/kernel/sort_by_key/sort_by_key_impl.cpp") + ADD_DEPENDENCIES(opencl_sort_by_key_${SBK_TYPE} ${cl_kernel_targets}) + IF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE) + ADD_DEPENDENCIES(opencl_sort_by_key_${SBK_TYPE} forge) + ENDIF() + SET_TARGET_PROPERTIES(opencl_sort_by_key_${SBK_TYPE} PROPERTIES COMPILE_FLAGS "-DTYPE=${SBK_TYPE}") + LIST(APPEND SORT_BY_KEY_OBJECTS $) +ENDFOREACH(SBK_TYPE ${SBK_TYPES}) diff --git a/src/backend/opencl/kernel/sort_by_key/f32.cpp b/src/backend/opencl/kernel/sort_by_key/f32.cpp deleted file mode 100644 index a1e9ae5f1f..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/f32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(float,true) - INSTANTIATE1(float,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/f64.cpp b/src/backend/opencl/kernel/sort_by_key/f64.cpp deleted file mode 100644 index 7fb7a79bd8..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/f64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(double,true) - INSTANTIATE1(double,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/s16.cpp b/src/backend/opencl/kernel/sort_by_key/s16.cpp deleted file mode 100644 index 491ea0e3a2..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/s16.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(short,true) - INSTANTIATE1(short,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/s32.cpp b/src/backend/opencl/kernel/sort_by_key/s32.cpp deleted file mode 100644 index 67ba20e7dd..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/s32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(int,true) - INSTANTIATE1(int,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/s64.cpp b/src/backend/opencl/kernel/sort_by_key/s64.cpp deleted file mode 100644 index a48f36ee47..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/s64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(intl,true) - INSTANTIATE1(intl,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/b8.cpp b/src/backend/opencl/kernel/sort_by_key/sort_by_key_impl.cpp similarity index 76% rename from src/backend/opencl/kernel/sort_by_key/b8.cpp rename to src/backend/opencl/kernel/sort_by_key/sort_by_key_impl.cpp index ad0d7f48ae..bf4c96bbb2 100644 --- a/src/backend/opencl/kernel/sort_by_key/b8.cpp +++ b/src/backend/opencl/kernel/sort_by_key/sort_by_key_impl.cpp @@ -9,11 +9,13 @@ #include +// SBK_TYPES:float double int uint intl uintl short ushort char uchar + namespace opencl { namespace kernel { - INSTANTIATE1(char,true) - INSTANTIATE1(char,false) + INSTANTIATE1(TYPE,true) + INSTANTIATE1(TYPE,false) } } diff --git a/src/backend/opencl/kernel/sort_by_key/u16.cpp b/src/backend/opencl/kernel/sort_by_key/u16.cpp deleted file mode 100644 index 36678d0a42..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/u16.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(ushort,true) - INSTANTIATE1(ushort,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/u32.cpp b/src/backend/opencl/kernel/sort_by_key/u32.cpp deleted file mode 100644 index f1e4b5322f..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/u32.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(uint,true) - INSTANTIATE1(uint,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/u64.cpp b/src/backend/opencl/kernel/sort_by_key/u64.cpp deleted file mode 100644 index 0a6f5b0c4f..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/u64.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(uintl,true) - INSTANTIATE1(uintl,false) -} -} diff --git a/src/backend/opencl/kernel/sort_by_key/u8.cpp b/src/backend/opencl/kernel/sort_by_key/u8.cpp deleted file mode 100644 index 45af011a86..0000000000 --- a/src/backend/opencl/kernel/sort_by_key/u8.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************* - * Copyright (c) 2014, ArrayFire - * All rights reserved. - * - * This file is distributed under 3-clause BSD license. - * The complete license agreement can be obtained at: - * http://arrayfire.com/licenses/BSD-3-Clause - ********************************************************/ - -#include - -namespace opencl -{ -namespace kernel -{ - INSTANTIATE1(uchar,true) - INSTANTIATE1(uchar,false) -} -}