diff --git a/src/TNL/Containers/Algorithms/CMakeLists.txt b/src/TNL/Containers/Algorithms/CMakeLists.txt index ea0148af125ed2c1aa9ce973b54f149ab151f892..f3ccab86d77daa7f6b4fe3fedd7e73cd769c033c 100755 --- a/src/TNL/Containers/Algorithms/CMakeLists.txt +++ b/src/TNL/Containers/Algorithms/CMakeLists.txt @@ -1,3 +1,5 @@ +ADD_SUBDIRECTORY( TemplateExplicitInstantiation ) + set( headers cuda-prefix-sum.h cuda-prefix-sum_impl.h cuda-reduction.h @@ -12,39 +14,4 @@ set( headers cuda-prefix-sum.h Multireduction_impl.h ) -SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms ) -IF( BUILD_CUDA ) - set( tnl_core_cuda_CUDA__SOURCES - ${common_SOURCES} - ${CURRENT_DIR}/cuda-reduction-sum_impl.cu - ${CURRENT_DIR}/cuda-reduction-min_impl.cu - ${CURRENT_DIR}/cuda-reduction-max_impl.cu - ${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu - ${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu - ${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu - ${CURRENT_DIR}/cuda-reduction-and_impl.cu - ${CURRENT_DIR}/cuda-reduction-or_impl.cu - ${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu - ${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu - ${CURRENT_DIR}/cuda-reduction-equalities_impl.cu - ${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu - ${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu - ${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu - ${CURRENT_DIR}/cuda-prefix-sum_impl.cu - PARENT_SCOPE ) -endif() - -set( tnl_core_cuda_SOURCES - ${common_SOURCES} - ${CURRENT_DIR}/cuda-reduction_impl.cpp - ${CURRENT_DIR}/cuda-prefix-sum_impl.cpp - PARENT_SCOPE ) - INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/TNL/Containers/Algorithms ) diff --git a/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt new file mode 100755 index 0000000000000000000000000000000000000000..266952e328fc11a0235a8b737f612cb2ffdfa7dc --- /dev/null +++ b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt @@ -0,0 +1,33 @@ +SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation ) +IF( BUILD_CUDA ) + set( tnl_core_cuda_CUDA__SOURCES + ${common_SOURCES} + ${CURRENT_DIR}/cuda-reduction-sum_impl.cu + ${CURRENT_DIR}/cuda-reduction-min_impl.cu + ${CURRENT_DIR}/cuda-reduction-max_impl.cu + ${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu + ${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu + ${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu + ${CURRENT_DIR}/cuda-reduction-and_impl.cu + ${CURRENT_DIR}/cuda-reduction-or_impl.cu + ${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu + ${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu + ${CURRENT_DIR}/cuda-reduction-equalities_impl.cu + ${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu + ${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu + ${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu + ${CURRENT_DIR}/cuda-prefix-sum_impl.cu + PARENT_SCOPE ) +endif() + +set( tnl_core_cuda_SOURCES + ${common_SOURCES} + ${CURRENT_DIR}/cuda-reduction_impl.cpp + PARENT_SCOPE ) diff --git a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-prefix-sum_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-prefix-sum_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-max_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-max_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-max_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-min_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-min_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-min_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-sum_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-sum_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-sum_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-and_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-and_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-and_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-and_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-max_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-max_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-max_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-min_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-min_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-min_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-sum_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-sum_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-sum_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-l2-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-l2-norm_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-l2-norm_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-l2-norm_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-lp-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-lp-norm_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-lp-norm_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-lp-norm_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-max_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-max_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-max_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-min_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-min_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-min_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-sum_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-sum_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-sum_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-equalities_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-equalities_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-equalities_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-equalities_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-inequalities_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-inequalities_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-inequalities_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-inequalities_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-l2-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-l2-norm_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-l2-norm_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-l2-norm_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-lp-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-lp-norm_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-lp-norm_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-lp-norm_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-max_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-max_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-max_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-min_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-min_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-min_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-or_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-or_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-or_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-or_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-scalar-product_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-scalar-product_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-scalar-product_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-scalar-product_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-sum_impl.cu similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction-sum_impl.cu rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-sum_impl.cu diff --git a/src/TNL/Containers/Algorithms/cuda-reduction_impl.cpp b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction_impl.cpp similarity index 100% rename from src/TNL/Containers/Algorithms/cuda-reduction_impl.cpp rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction_impl.cpp diff --git a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp b/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp deleted file mode 100644 index ebce329454f166df941c143237f173d801ffe697..0000000000000000000000000000000000000000 --- a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp +++ /dev/null @@ -1,13 +0,0 @@ -/*************************************************************************** - cuda-prefix-sum_impl.cpp - description - ------------------- - begin : Jan 18, 2014 - copyright : (C) 2014 by Tomas Oberhuber - email : tomas.oberhuber@fjfi.cvut.cz - ***************************************************************************/ - -/* See Copyright Notice in tnl/Copyright */ - - - -