summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/compute/perf/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/compute/perf/CMakeLists.txt')
-rw-r--r--src/boost/libs/compute/perf/CMakeLists.txt210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/boost/libs/compute/perf/CMakeLists.txt b/src/boost/libs/compute/perf/CMakeLists.txt
new file mode 100644
index 00000000..b04429e9
--- /dev/null
+++ b/src/boost/libs/compute/perf/CMakeLists.txt
@@ -0,0 +1,210 @@
+# ---------------------------------------------------------------------------
+# Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
+#
+# Distributed under the Boost Software License, Version 1.0
+# See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt
+#
+# ---------------------------------------------------------------------------
+
+include_directories(../include)
+
+set(PERF_BOOST_COMPONENTS system timer chrono program_options)
+
+if (${BOOST_COMPUTE_USE_OFFLINE_CACHE})
+ set(PERF_BOOST_COMPONENTS ${PERF_BOOST_COMPONENTS} filesystem)
+endif()
+
+if(${BOOST_COMPUTE_THREAD_SAFE} AND NOT ${BOOST_COMPUTE_USE_CPP11})
+ set(PERF_BOOST_COMPONENTS ${PERF_BOOST_COMPONENTS} thread)
+elseif(${BOOST_COMPUTE_HAVE_BOLT} AND ${BOOST_COMPUTE_USE_CPP11})
+ set(PERF_BOOST_COMPONENTS ${PERF_BOOST_COMPONENTS} thread)
+endif()
+
+if(${BOOST_COMPUTE_HAVE_BOLT} AND ${BOOST_COMPUTE_USE_CPP11})
+ set(PERF_BOOST_COMPONENTS ${PERF_BOOST_COMPONENTS} date_time)
+endif()
+
+if(PERF_BOOST_COMPONENTS)
+ list(REMOVE_DUPLICATES PERF_BOOST_COMPONENTS)
+endif()
+find_package(Boost 1.54 REQUIRED COMPONENTS ${PERF_BOOST_COMPONENTS})
+include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
+
+set(BENCHMARKS
+ accumulate
+ bernoulli_distribution
+ binary_find
+ cart_to_polar
+ comparison_sort
+ copy_if
+ copy_to_device
+ count
+ discrete_distribution
+ erase_remove
+ exclusive_scan
+ fill
+ find
+ find_end
+ includes
+ inner_product
+ is_permutation
+ is_sorted
+ max_element
+ merge
+ next_permutation
+ nth_element
+ partial_sum
+ partition
+ partition_point
+ prev_permutation
+ reverse
+ reverse_copy
+ rotate
+ rotate_copy
+ host_sort
+ random_number_engine
+ reduce_by_key
+ saxpy
+ search
+ search_n
+ set_difference
+ set_intersection
+ set_symmetric_difference
+ set_union
+ sort
+ sort_by_key
+ sort_float
+ stable_partition
+ uniform_int_distribution
+ unique
+ unique_copy
+)
+
+foreach(BENCHMARK ${BENCHMARKS})
+ set(PERF_TARGET perf_${BENCHMARK})
+ add_executable(${PERF_TARGET} perf_${BENCHMARK}.cpp)
+ target_link_libraries(${PERF_TARGET} ${OpenCL_LIBRARIES} ${Boost_LIBRARIES})
+endforeach()
+
+# stl benchmarks (for comparison)
+set(STL_BENCHMARKS
+ stl_accumulate
+ stl_count
+ stl_find
+ stl_find_end
+ stl_includes
+ stl_inner_product
+ stl_max_element
+ stl_merge
+ stl_next_permutation
+ stl_partial_sum
+ stl_partition
+ stl_prev_permutation
+ stl_reverse
+ stl_reverse_copy
+ stl_rotate
+ stl_rotate_copy
+ stl_saxpy
+ stl_search
+ stl_search_n
+ stl_set_difference
+ stl_set_intersection
+ stl_set_symmetric_difference
+ stl_set_union
+ stl_sort
+ stl_stable_partition
+ stl_unique
+ stl_unique_copy
+)
+
+# stl benchmarks which require c++11
+if(${BOOST_COMPUTE_USE_CPP11})
+ list(APPEND
+ STL_BENCHMARKS
+ stl_is_permutation
+ stl_partition_point
+ )
+endif()
+
+foreach(BENCHMARK ${STL_BENCHMARKS})
+ set(PERF_TARGET perf_${BENCHMARK})
+ add_executable(${PERF_TARGET} perf_${BENCHMARK}.cpp)
+ target_link_libraries(${PERF_TARGET} ${Boost_LIBRARIES})
+endforeach()
+
+# cuda/thrust benchmarks (for comparison)
+if(${BOOST_COMPUTE_HAVE_CUDA})
+ find_package(CUDA 5.0 REQUIRED)
+
+ set(CUDA_BENCHMARKS
+ thrust_accumulate
+ thrust_count
+ thrust_exclusive_scan
+ thrust_find
+ thrust_inner_product
+ thrust_merge
+ thrust_partial_sum
+ thrust_partition
+ thrust_reduce_by_key
+ thrust_reverse
+ thrust_reverse_copy
+ thrust_rotate
+ thrust_saxpy
+ thrust_set_difference
+ thrust_sort
+ thrust_unique
+ )
+
+ foreach(BENCHMARK ${CUDA_BENCHMARKS})
+ set(PERF_TARGET perf_${BENCHMARK})
+ cuda_add_executable(${PERF_TARGET} perf_${BENCHMARK}.cu)
+ target_link_libraries(${PERF_TARGET} ${CUDA_LIBRARIES} ${Boost_LIBRARIES})
+ endforeach()
+endif()
+
+# intel tbb benchmarks (for comparison)
+if(${BOOST_COMPUTE_HAVE_TBB})
+ find_package(TBB REQUIRED)
+ include_directories(SYSTEM ${TBB_INCLUDE_DIRS})
+
+ set(TBB_BENCHMARKS
+ tbb_accumulate
+ tbb_merge
+ tbb_sort
+ )
+
+ foreach(BENCHMARK ${TBB_BENCHMARKS})
+ set(PERF_TARGET perf_${BENCHMARK})
+ add_executable(${PERF_TARGET} perf_${BENCHMARK}.cpp)
+ target_link_libraries(${PERF_TARGET} ${TBB_LIBRARIES} ${Boost_LIBRARIES})
+ endforeach()
+endif()
+
+# bolt c++ template lib benchmarks (for comparison)
+if(${BOOST_COMPUTE_HAVE_BOLT} AND ${BOOST_COMPUTE_USE_CPP11})
+ find_package(Bolt REQUIRED)
+ include_directories(SYSTEM ${BOLT_INCLUDE_DIRS})
+
+ set(BOLT_BENCHMARKS
+ bolt_accumulate
+ bolt_count
+ bolt_exclusive_scan
+ bolt_fill
+ bolt_inner_product
+ bolt_max_element
+ bolt_merge
+ bolt_partial_sum
+ bolt_reduce_by_key
+ bolt_saxpy
+ bolt_sort
+ )
+
+ foreach(BENCHMARK ${BOLT_BENCHMARKS})
+ set(PERF_TARGET perf_${BENCHMARK})
+ add_executable(${PERF_TARGET} perf_${BENCHMARK}.cpp)
+ target_link_libraries(${PERF_TARGET} ${OpenCL_LIBRARIES} ${BOLT_LIBRARIES} ${Boost_LIBRARIES})
+ endforeach()
+elseif(${BOOST_COMPUTE_HAVE_BOLT} AND NOT ${BOOST_COMPUTE_USE_CPP11})
+ message(WARNING "BOOST_COMPUTE_USE_CPP11 must be ON for building Bolt C++ Template Library performance tests.")
+endif()